<?php
i|0E8c Tm$V5[Guest喜悦空间\5p(P,ZZ $no = array('36' => 0,'27' => 1,'32' => 2,'31' => 3,'35' => 4,'37' => 5,'39' => 6,'26' => 7,'40' => 8, '39' => 9);//提前
计算出的关键像素的数量
喜悦空间Q)oF*E,JuF/WN $img_scr = @file_get_contents("http://bj.ganji.com/common/reg_authcode.php?0.9656044610310346"); // 载入图片
FN+P(t:Y+@Guest $imgObj = @imagecreatefromstring($img_scr); //获取图片的文件字符串
dy/D1WT*CGuest @imagegif($imgObj,'code.gif'); // 将验证码保存成图像文件 // 通过字符串实例一个图像对象
`s4W;O.]/N!_Guest $img_s = @getimagesize('code.gif'); // 获取图像文件的宽高像素
0OW:|-@_ wGuest $imgObjnew = @imagecreate($img_s[0]-14,$img_s[1]); // 把多余部分去掉
5[O3GA
uGuest6wY-o~:OGuest @imagecopy($imgObjnew, $imgObj, 0, 0, 7, 0, $img_s[0]-7, $img_s[1]); //构造一个新的图像对象 他的宽比原图少 14 像素 因为有多余的部分要去掉
$~NC?Mq*@/w6~Guest $offx=($img_s[0]-14)/4; //将关键部分复制到新图像对象中 左右个抛弃 7 像素的多余部分
MY'E.d/_P4vGuest for ($i=0;$i<4;$i++) //计算每个数字在图片中的宽度 //一共 4 个数字 $imgs 是转载各个数字图像的数组 // 把验证码一个一个的切下来
VcaI`
XGuest {
喜悦空间*UrxDx:I5f ](l q $imgs[$i]=@imagecreate($offx,$img_s[1]); //实例化他们
9~2~;NH0u
^)OGuest @imagecopy ($imgs[$i],$imgObjnew,0,0,$i*$offx,0,$offx,$img_s[1]); //将各个数字图片拷贝到$imgs 数组
喜悦空间K
GC6U2S0Sn }
喜悦空间:lNp(_,Y4M@*X g1](X,G(MGuest // 计算每个数字的关键像素点数量
喜悦空间'l"D;vE+^9iM1d $imp_p = 0; //关键点数量
喜悦空间 ]D2P$x s$m)~/{`o $imp_hp = 0; //数字上半部分关键点数量 【由于 6 和 9 的关键点是一样 所以需要计算他们上半部分点数】
RrXMP(N"?d+XGuest for ($c=0; $c<4; $c++)
喜悦空间)w?,ZSJ3n2v {
喜悦空间K6P9Q~,L e VY*m5W for($i=0; $i<$offx; $i++) //遍历 x 轴
喜悦空间n7gU0U/r {