remington_young 发表于 2018-12-22 10:55:10

PHP(11) 图像型的验证码

PHP(11) 图像型的验证码

在用户登录程序(版本1)中,我们曾经提到过验证码主要分为字符型和图像型两种,而字符型又可以分为数字型和混合型两种(这些分类是我的分类,可以存在偏差,请多包涵!^_^)。在上两篇博文中,我们已经将字符型的验证码实现了,这次,我们再次我们的程序做一次升级----图像型验证码


如果我们在PHP中来处理图像的话,那么就必须依赖于GD(Graphics Draw)库,还记得我们在php.ini中启用过php_gd2.dll吗,启用该文件的目的就是为了来处理图像的!

下面我们就来了解一下GD函数库吧!

1. image_create和imagecreatetruecolor

两个函数的目的是一样的,都是创建一个图像资源,语法结构也
一样的

$变量名称 = imagecreate(宽度,高度);



$变量名称 = imagecreatetruecolor(宽度,高度);

两者唯一的区别在于:前者是基于调色板;后者基于真彩色(推荐使用)

2. imagecolorallocate

功能:为图像来分配一个颜色,也就是说这种颜色可能在图像中使用,但具体的是在前景色中使用;还是在背景色或填充色中使用,并不固定,由用户来决定。

$变量名称 = imagecolorallocate($图像资源名称,红色,绿色,蓝色);

3. imagefill

功能:区域填充

语法:[$变量名称=]imagefill($图像资源名称,x,y,颜色);

需要提醒各位的是:颜色不可以直接来书写,必须使用imagecolorallocate来分配

4. imagestring和imagettftext

功能均为在图像中书写文本,不过imagestring一般用来使用内置字体来书写文本,而且文本不能带有旋转样式,如果想通过imagestring+外部字体来书写文本时,那么必须使用imageloadfont来加载字体;而imagettftext则使用TrueType 字体在图像内书写文本。

[$变量名称=]imagestring($图像资源名称,字号,x,y,”内容”,颜色);

[$变量名称=]imagettftext($图像资源名称,字号,旋转角度,x,y,颜色,”字体文件”,”内容”);

5.imagefilledrectangle、imagearc、imageline、imagesetpixel

imagefillledrectangle的功能为绘制填充的矩形

imagearc的功能为在图布上绘制圆弧

imageline的功能为在画布上绘制线段

imagesetpixel的功能为在画布上绘制像素点

6. imagegif、imagejpeg、imagepng

imagegif的功能为将图像资源作为gif格式输出到屏幕或生成文件

imagejpeg的功能为将图像资源作为jpeg格式输出到屏幕或生成文件

imagepng的功能为将图像资源作为png格式输出到屏幕或生成文件

7.   imagedestroy

imagedestroy的功能为销毁图像资源

好了,现在的这几个函数,我们差不多就都理解了,我们现在来实现一个简单的案例:

案例1:






,0);
imagefilledrectangle(1,2-$white

,40,$black
);



= "120";
= "45";
= imagecreatetruecolor($width,$height);
= imagecolorallocate($img,0,0,0);
= imagecolorallocate($img,255,255,255);
$img,$black
,1-$height,
(0
页: [1]
查看完整版本: PHP(11) 图像型的验证码