php生成一定角度的验证图片

jackxiang 2010-7-7 22:49 | |

<?php

//设置文件头;
Header("Content-type: image/PNG");

function make_rand($length="32"){//验证码文字生成函数
    $str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    $result="";
    for($i=0;$i<$length;$i++){
        $num[$i]=rand(0,61);
        $result.=$str[$num[$i]];
    }
    return $result;
}
$checkcode = make_rand(5);

//生成验证码图片;
$im = imagecreate(60,22);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);

imagefill($im, 68, 30, $gray);

$text = $checkcode;
$font = 'c:\\WINDOWS\\Fonts\\arial.ttf';

for ($i=0;$i<strlen($text);$i++)
{
    $tmp =substr($text,$i,1);
    $array = array(-1,1);
    $p = array_rand($array);
    $an = $p*mt_rand(1,20);//角度
    $size = 10;
    imagettftext($im,$size,$an,10+$i*$size,15,$white,$font,$tmp);
}

//将五位验证码绘入图片;
//imagestring($im, 5, 8, 3, $checkcode, $black);

//加入干扰象素;
$count = 150;//干扰像素的数量
for($i=0; $i<$count; $i++){
    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
//以PNG格式将图像输出到浏览器或文件;
ImagePNG($im);

//销毁一图像,释放与image关联的内存;
ImageDestroy($im);
?>



来源:http://blog.sina.com.cn/s/blog_53fa176f01008tby.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3288/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]