gd库是学习php比较早接触到的部分,因为学过一些canvas,所以感觉上手快,容易出效果,感觉验证码又有点小神秘,从最基础的做开始,熟悉一些函数,函数名真的长,但是很多都是见而知其意,后面还会封装成类和函数,包括完整的验证
GD2使用步骤
- 创建画布
- 创建颜色
- 开始绘制
- 格式输出
- 销毁资源
imagefontwidth()
关键点在于随机出现四个摆放不同的字符,还有另一种简易方式
$string = join("",array_merge(range('a','z'),range('A','Z'),range(0,9)));
$text = str_shuffle($string)[0];
str_shuffle( )用于随机打乱字符串,返回字符串,截取第一个字符
加上点和线的干扰元素
for ($i = 0;$i < 50;$i++){
imagesetpixel($image,mt_rand(0,$width),mt_rand(0,$height),randcolor($image));
}
for ($i = 0;$i < 3;$i++){
imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),randcolor($image));
}
里面的randcolor($image)是封装的函数
function randcolor($image){
return imagecolorallocate($image,mt_rand(30,120),mt_rand(30,120),mt_rand(30,120));
};