|
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 |
|
|