文章目录[隐藏]
PHP制作验证码的方法有多种,今天介绍的主要是使用一些图像函数生产验证码,调用了字体文件,你可以下载你喜欢的字体文件,也非常简单使用,这里为了方便学习交流没有写入seiion,也没有封装成函数,你可以进步开发。文章最后提供了百度云盘下载源码。
一、创建图像函数简介
1.创建新的
- ◆ imagecreatetruecolor()//新建一个真彩色图像
2.打开服务器或网络文件中已经存在的GIF,JPEG,PNG,WBMP格式图像
- ◆ imagecreatefromjpeg()
- ◆ imagecreatefrompng()
- ◆ imagecreatefromgif()
- ◆ imagecreatefromwbmp()
- ◆ imagesx()//输出画布宽度
- ◆ imagesy()//输出画布高度
- ◆ getimagesize()//取得图像大小
二、绘制图像
图像创建完成以后,就可以通过这个图像资源,使用各种画像函数设置图像的颜色、填充图像、画点、线段、以及向图像的添加文本等
- ◆ 1.imagecolorallocate()//分配颜色
- ◆ 2.imagefill()//区域填充
- ◆ 3.imagesetpixel()//画一个单一像素
- ◆ 4.imageline()//画一条线段
- ◆ 5.imagerectangle()//画一个矩形
- ◆ 6.imagestring()//水平地画一行字符串
- ◆ 7.imagettftext()//用 TrueType 字体向图像写入文本
- ◆ 8.imagettfbbox()//计算 TrueType 文字所占区域
- ◆ 9.imagecopy()//拷贝图像的一部分
- ◆ 10.imagecopymerge()//拷贝并合并图像的一部分
- ◆ 11.imagecopyresampled()//重采样拷贝部分图像并调整大小
三、生成图像
- ◆ header()
- ◆ imagegif()
- ◆ imagejpeg()
- ◆ imagepng()
- ◆ imagewbmp()
四、释放内存资源
- ◆ imagedestroy()
五、可换字体字母验证码
<?php
header('Content-type:image/jpeg');
$width=120;
$height=40;
$element=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$string='';
for ($i=0;$i<5;$i++){
$string.=$element[rand(0,count($element)-1)];
}
$img=imagecreatetruecolor($width, $height);
$colorBg=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));
$colorBorder=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));
$colorString=imagecolorallocate($img,rand(10,100),rand(10,100),rand(10,100));
imagefill($img,0,0,$colorBg);
imagerectangle($img,0,0,$width-1,$height-1,$colorBorder);
for($i=0;$i<100;$i++){
imagesetpixel($img,rand(0,$width-1),rand(0,$height-1),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)));
}
for($i=0;$i<3;$i++){
imageline($img,rand(0,$width/2),rand(0,$height),rand($width/2,$width),rand(0,$height),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)));
}
//SketchyComic.ttf是字体文件,你可以根据自己的喜好,下载后换掉这个文件
imagettftext($img,14,rand(-5,5),rand(5,15),rand(30,35),$colorString,'font/SketchyComic.ttf',$string);
imagejpeg($img);
imagedestroy($img);
?>
注意:
1、SketchyComic.ttf是字体文件,你可以根据自己的喜好,下载后换掉这个文件,这是一个英文字体文件,不能显示中文会乱码,但你如果换成中文字体就可以汉字和字母随机生成了。、
2、要在数组中$element=array
设置你调用的字符。
3、如果是初学者你可以对照上面的函数看下源码,非常简单。
六、源码下载
百度云盘下载可换字体字母验证码:http://pan.baidu.com/s/1dFDjdwX