准备研究一下百度的文字识别

但是没有找到合适的验证码

所以自己写了一个

这个用的是PHP的GD库生成的图片

100*30的白色底图

$image = imagecreatetruecolor(100, 30);
$bgcolor = imagecolorallocate($image, 255, 255, 255);//ffffff
imagefill($image, 0, 0, $bgcolor);

验证码内容是大小写字母加10个数字里随即取四个

for ($i=0; $i < 4; $i++) {
$fontsize=6;
$fontcolor=imagecolorallocate($image,rand(0,180),rand(0,180),rand(0,180));
$data=’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ1234567890′;
$fontcontent=substr($data, rand(0,strlen($data)),1);
$Verification_code .= $fontcontent;
$x=($i*100/4)+rand(5,10);
$y=rand (5,10);
imagestring($image, $fontsize, $x,$y, $fontcontent, $fontcolor);
}

然后加入200个随机颜色的点

for ($i=0; $i < 300; $i++) {
$pointcolor=imagecolorallocate($image,rand(50,230), rand(50,230),rand(50,230));
imagesetpixel($image, rand(1,99), rand(1,99), $pointcolor);
}

以及5条随机颜色随机方向随机长短的线

for ($i=0; $i < 5; $i++) {
$linecolor = imagecolorallocate($image, rand(80,220), rand(80,220),rand(80,220));
imageline($image, rand(1,99), rand(1,29), rand(1,99), rand(1,29),$linecolor);
}

这就OK

 

成品页面地址:

http://www.mdzz.vip/Verification_code_page.php

注:我这个验证码校验是区分大小写的

如果你们碰到0Oo1Ili5sS这些看不清的

麻烦刷新一下

 

如果还有什么可以改进的还请在下面留言评论

互相交流学习

老毛博客

www.mdzz.vip