四时宝库

程序员的知识宝库

PHP+GD库实现打文字水印,图片水印,php给图片打水印

现在自媒体泛滥,每个自媒体账号都会给自己的文章图片打上自己的水印,那么水印是怎么实现的呢?

今天就给大家看看水印的具体实现,话不多说,直接上代码:

<?php
//告诉浏览器以jpeg图像的方式显示
header("Content-type:image/jpeg;charset=utf-8");
//创建画布
$width = 750;
$height = 1334;
//新建一个空白图像资源
$image = imagecreate($width, $height);
//创建背景颜色
$white = imagecolorallocate($image, 255, 255, 255);
//创建字体颜色
$red = imagecolorallocate($image, 255, 0, 0);
//字符,转码
$font = mb_convert_encoding('segmentfault', "html-entities", "utf-8"); 
//开始绘画
imagettftext ($image, 50, 0, 200, 200, $red, 'msyh.ttc','segmentfault.com');
imagettftext ($image, 60, 0, 200, 300, $red, 'msyh.ttc',$font);
//生成图像
imagejpeg($image,"3.jpg");
//目标图像
$dst_path = "3.jpg";
//水印图片
$src_path = 'sf.png';
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);
//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果,两个20是控制水印坐标位置
// imagecopymerge($dst, $src, 20, 20, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色,则使用imagecopy方法
imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
 case 1://GIF
 header('Content-Type: image/gif');
 imagegif($dst);
 break;
 case 2://JPG
 header('Content-Type: image/jpeg');
 imagejpeg($dst);
 break;
 case 3://PNG
 header('Content-Type: image/png');
 imagepng($dst);
 break;
 default:
 break;
}
imagedestroy($dst);
imagedestroy($src);
$shuiyin = "gd.php";
//销毁资源
imagedestroy($image);

PHP扩展函数 图片处理函数GD2(php扩展ffmpeg教程)

有些函数系统也帮忙打包好,以xxx.dll文件存放在ext、extras文件夹中,需要开启配置才能使用。这些函数称为扩展函数(extend)。

一、解决中文截取乱码mb_substr

echo mb_substr("中abc",0,2,"utf-8");

二、图片处理函数GD2

GD(graphic device,图形设备),负责在屏幕和打印机上输出信息。GD2是GDI的后续版本。要使用GD2,首先应该把网页打散作为图像(header),接着创建Graphics类对象(简单的来说,Graphics类对象就相当于画布,没画布我们在什么地方绘图呢?),然后调用一系列绘图方法即可,最后再生成图片、释放资源(destroy)。看下面的代码

系统漏洞挖掘展示(SE版的前台sql注入漏洞)

SE版的前台sql注入漏洞。

此漏洞仅仅影响 骑士CMS人才系统SE版

PHP也可以玩转验证码开发(php验证源码)

PHP很强大可以轻松快捷的处理多种数据格式,在图像处理上也拥有强大而且简单的实现方式。

PHP处理图像需要拓展库GD库的支持

可以通过PHPINFO()函数查看GD库是否开启,如果没有开启在PHPINI中开启

检测拓展库是否加载:extension_loaded("GD")

2.PHP创建图片的方法

<?php

//1.发送HTTP头文件,声明内容为图像

渗透测试文件上传通关练习之Upload-labs

这是一个专门练习文件上传的靶场,和sqli-labs靶场类似。

github项目地址:
https://github.com/c0ny1/upload-labs

你知道PHP是如何实现验证码的创建和校验的吗?


首先我们分以下几个步骤:

1.使用php创建一个图像

2.登陆页面引入php创建的图像

3.验证输入的是否正确

这其中最核心的就是用php创建图像,那么接下来就跟着我一起开始吧


首先新建一个captcha.php 文件内容:

<?php

// 设置验证输出的内容,提示:一般剔除数字和字母容易混淆的几个
$data = "abcdefghjklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789";

// 创建一个画布,就是验证码的大小
$width = 100;
$height = 30;
$img = imagecreatetruecolor($width,$height);
$color = imagecolorallocate($img,0xcc,0xcc,0xcc);

// 填充颜色 imgefill()
imagefill($img,0,0,$color);

// 绘制画布的噪点 这里假设设置600个噪点
for($i=0;$i<600;$i++)
{
 $color = imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100));
 $x = rand(0,$width);
 $y = rand(0,$height);
  imagesetpixel($img,$x,$y,$color);
}

// 绘制画布的干扰线,这里假设画6道线
for($i = 0; $i<6; $i++)
{
  $color = imagecolorallocate($img, rand(100, 200), rand(100, 200), rand(100,200));
  $x1 = rand(0, $width);
  $y1 = rand(0, $height);
  $x2 = rand(0, $width);
  $y2 = rand(0, $height);
  imageline ($img, $x1, $y1, $x2, $y2, $color);
}

// 绘制圆来干扰 假设画4个圆
for ($i=0; $i<4; $i++)
{
 $color = imagecolorallocate ($img, rand(100, 255), rand(100, 255), rand(100,255));
  imageellipse ($img, rand(0, $width), rand(0, $height),30,30,$color);
}

/**
* 验证码内容
* $len : 字符串长度
* $font : 字体的路径,需要自己下载特殊字体
* $captcha: 验证码内容
*/
$len = strlen($data);
$font = './font/texb.ttf';
$captcha = ""; // 这一步不能少,不然会出现报错,设置一个空的变量
for ($i = 0; $i<4; $i++)
{
 $textcolor = imagecolorallocate ($img, rand(0,100), rand(0,100), rand(0,100));
 $index = rande (0, $len-1);
 $indexstr = substr ($str, $index, 1);
 $captcha. = $indexstr;
 $x = 10+$i*20;
 $y = 20;
 imagettftext ($img, 18 , rand(-50, 50), $x, $y, $textcolor, $font, $indexstr);
}

// 这里开启session
session_start();
// 用session 保存验证码内容
$_SESSION["captcha"] = $captcha;
// 设置格式输出画布
header ('content-type:image/png');
imagepng ($img);
// 最后销毁这个图片
imagedestroy ($img);

?>

php如何实现验证码(php 短信验证码)

php如何实现验证码

2016-06-22 PHP技术分享

证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。好吧,其实是没有事情干,但是又不想浪费时间,所以学习了下php实现验证码。正所谓,技多不压身。而且,也可以封装成一个函数,以后使用的时候也是很方便的,当然现在未封装。

现在来说说简单的纯数字验证码吧。

如果是初学者,建议按照我代码的注释 //数字 一步步来。最简单的方法,还是把整个代码复制走了。

傻瓜式PHP验证码快速生成(php做验证码)

在PHP中,有些处理图像的函数时可以直接使用的,但是绝大多数图像处理相关的函数还是需要在安装GD库之后才能使用,GD库是PHP处理图像的扩展库,它提供了一系列用来处理图像的API。在Windows系统下,GD库已经默认安装好了,需要在php.ini中开启,将配置文件中extension=php_gd2.dll选项中前面的分号去掉,保存修改后的文件,重启Apache服务即可启动GD函数库。

在基本的环境准备好之后我们就可以愉快的开始进行图片处理。

PHP 图像处理函数(php处理图片需要什么扩展)

(1)创建画布 --- 创建资源类型 --- 高度 宽度

resource imagecreate ( int x_size, int y_size ) 创建一个基于普通调色板的图像, 通常支持256色(png、gif、jepg等都支持)

resource imagecreatetruecolor ( int x_size, int y_size ) 创建一个真彩色的图像, 但不能用于gif格式

WordPress主题自定义注册登录表单中添加字符图片验证码

无论你是WordPress主题开发者还是想要对自己的网站进行二次开发,有时候我们需要在用户注册、登录的地方添加一个字符图片验证码来阻挡一些机器人暴力破解账户密码。

WordPress插件仓库里有很多这样的插件,但是基本上都是针对于WordPress自带的登录或者注册表单页面,而对于没有使用WordPress自身的注册登录表单,使用主题开发的注册登录功能的时候则安装了插件也不会有任何效果。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接