Dzerblog学习笔记 之 验证码


验证码

/*思路:

1、产生一张png的图片;

2、为图片设置背景色;

3、设置字体颜色和样式;

4、产生4位数的随机的验证码;

5、把产生的每个字符调整旋转角度和位置画到png图片上;

6、加入噪点或干扰线;

7、输出图片;

8、释放图片所占内存<。

*/

veriCode(4);
function veriCode($num=4){
    $str=strRand($num);
    //计算画布宽高
    $weith=25*$num;
    $heigth=30;
    //创建画布
    $im=imagecreatetruecolor($weith,$heigth);
    //创建颜色
    $red=imagecolorallocate($im, 255, 0, 0);
    $gray=imagecolorallocate($im, 200, 200, 200);
    $black=imagecolorallocate($im, 0, 0, 0);
    //填充背景
    imagefill($im,0,0,$gray);
    //随机画黑点
    for$i=1 ; $i<150 ; $i++){
        $x=rand(0,$weith);
        $y=rand(0,$heigth);
        imagesetpixel($im$x$y$black);
    }
    //写文字
    $font = ROOT.'data/font/verdanaz.ttf';
    for ($i=0,$x=0,$y=0; $i $num$i++) { 
        $x=$x+rand(12,20);
        $y=rand(17,20);
        // imagestring($im, 8, $x, $y, substr($str,$i,1), $red);
        imagettftext($im, 14, 0, $x$y$red$fontsubstr($str,$i,1));
    }
    //输出
    header('content-type:image/jpg');
    imagejpeg($im);
    imagedestroy($im);
}

 


常常是最后一把钥匙打开了门