本文介绍了用PHP生成图像验证码的方法,供大家参考:

1。生成添加操作验证代码图片


session_start();
*图片标题文件的定义。
页眉(内容类型:图像);
生成的验证码
创建一个图片设置字体颜色。
$我=画面欣赏($ W $ H);
红色= imagecolorallocate美元(合我,255, 255, 255);
白色= imagecolorallocate美元(合我,255, 255, 255);
两个随机生成的数字
$ num1 =兰特(1, 20);
$ num2 =兰特(1, 20);
_session美元{administratorconfirmcode} = $ num1 + $ num2;
设置图片的背景色。
灰色= imagecolorallocate美元(合我,118, 151, 199);
黑imagecolorallocate美元(合我,mt_rand(0, 100),mt_rand(0, 100),mt_rand(0, 100));
创建一个图片背景
Imagefilledrectangle(0, 0, 100美元,24美元是,黑色);
*在画布上随机生成大量的点。
($ i = 0;$ i < 80;$ + +){
imagesetpixel(合我,伦德(0,$ W),伦德(0,$ H),为灰色);
}
验证代码是用来计算的。
imagestring($ IM,5, 5, 4美元美元,num1,红色);
imagestring(合我,5, 30, 3,+
imagestring($ IM,5, 45, 4美元美元,num2,红色);
imagestring(合我,5, 70, 3,,
imagestring(合我,5, 80, 2,
图片输出
imagepng(为我);
销毁一图像(为我);




2、生成字符验证码图片。值得注意的是,字体在哪里,我们需要引入实际的字体路径,否则,图像可能不会显示验证码。


session_start();
设置图片输出的文件头。
页眉(内容类型:图像);
验证代码生成函数
$str =abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz01234565789 ;
$结果;
($ i = 0;$ i $ $长度;$ + +){
Num { } =美元美元我兰德(0,61);
结果;
}
$文本=结果;
_session美元{administratorconfirmcode} = $文本;
设置图像的宽度和高度。
im_x美元= $ W;
im_y美元= Y元;
创建一个图片
$我=新建一个真彩色图像(im_x美元,美元im_y);
text_c美元= imagecolorallocate(合我,mt_rand(0100),mt_rand(0100),mt_rand(0100));
tmpc0美元= mt_rand(100255);
tmpc1美元= mt_rand(100255);
(100255)mt_rand TmPc2*美元=;
buttum_c美元= imagecolorallocate(合我,tmpc0美元美元美元,tmpc1,TmPc2*);
imagefill(合我,16, 13,buttum_c美元);
字体文件
字体= _web_dir_美元。' / /漫画TTF的字体;
为($我= 0;$i < strlen($文本);$ i++){
$ TMP = substr(合文本,我,1);
数组=(1,1);
P = array_rand(数组);
美元=数组{ $ P } * mt_rand(1,10); / /角
美元= 28;
(我imagettftext美元,美元规模,美元15美元美元,+我的大小,35,text_c美元美元美元,字体,TMP);
}
将字符写入文件
distortion_im美元=新建一个真彩色图像(im_x美元,美元im_y);
imagefill(distortion_im美元,16, 13美元,buttum_c);
为($我= 0;美元美元美元我<< im_x;i++){
(J = 0;对美元美元美元,<< im_y;j++){
RGB = imagecolorat美元(美元美元美元我,I,J);
如果((int)($我+ 20 + sin(J / $ im_y×2×m_pi)* 10)= 0){
imagesetpixel(distortion_im美元,(int)($我+ 10 + sin(J / $ im_y×2×m_pi-m_pi×0.1)×4美元美元),J,RGB);
}
}
}
干扰中的元素数量。
$=160;
创建干扰点。
($ i = 0;$ i <计数;$ + +){
randcolor = imagecolorallocate美元(美元distortion_im,mt_rand(0255),mt_rand(0255),mt_rand(0255));
imagesetpixel(distortion_im美元,mt_rand()%()% mt_rand im_x美元,美元,美元im_y,randcolor);
}
创建干扰线。
兰德= mt_rand美元(5、30);
rand1美元= mt_rand(25);
rand2美元= mt_rand(5,10);
为($ YY =兰特;$ YY + $ +兰特+ 2;$ YY +){
为($ = 80;$ PX = 80;$ = $ 0.1){ {
X元=美元/美元rand1 PX;
如果(x)!= 0){
美元=罪恶(十美元);
}
py:美元美元美元rand2 Y *;
imagesetpixel($ distortion_im美元+ 80美元,PX,PY + $ YY,text_c美元);
}
}
*在PNG格式的图像输出到浏览器。
imagepng($ distortion_im);
销毁图像
销毁一图像($ distortion_im);
销毁一图像(为我);




更多关于PHP相关内容的读者可以看到特别站:PHP图形和图片,PHP操作技能总结,数学技巧总结

希望本文能对PHP程序设计有所帮助。