利用PHP应用图像处理生成验证码

来源:互联网 发布:龙门县网络问政 编辑:程序博客网 时间:2024/04/30 09:00

第一种生成方式:

<?php

    session_start();

    header("content-type:image/png");                  //设置创建图像格式

    $image_width=80;                                        //设置图像宽度

    $image_height=18;                                       //设置图像高度

    srand(microtime()*100000);                           //设置随机数的种子

    for($i=0;$i<4;$i++){                                    //循环输出一个四位的随机数

        $new_number.=dechex(rand(0,15));

    }

    $_SESSION[check_checks]=$new_number;       //将获取的随机数验证码写入SESSION变量中

    $num_image=imagecreate($image_width,$image_height);     //创建一个画布

    imagecolorallocate($num_image,255,255,255);                     //设置画面的颜色

    for($i=0;$i<strlen($_SESSION[check_checks]);$i++){   //循环读取SESSION变量中的验证码

        $font=mt_rand(3,5);                                            //设置随机的字体

        $x=mt_rand(1,8)+$image_width*$i/4;                    //设置随机字符所在位置的X轴坐标

        $y=mt_rand(1,$image_height/4);                           //设置随机字符所在位置的Y轴坐标

        $color=imagecolorallocate($num_image,mt_rand(1,100),mt_rand(0,150),mt_rand(0,200));                                                                    //设置字符的颜色

        imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color);                                                                                           //水平输出字符

    }

    imagepng($num_image);

    imagedestroy($num_image);

?>

 

第二种生成方式:

 

<?php

session_start();

//生成验证码图片

Header("Content-type: image/PNG");

$im = imagecreate(44,18);

$back = ImageColorAllocate($im, 245,245,245);

imagefill($im,0,0,$back); //背景

srand((double)microtime()*1000000);

//生成4位数字

for($i=0;$i<4;$i++){

$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));

$authnum=rand(0,9);

$vcodes.=$authnum;

imagestring($im, 5, 2+$i*10, 1, $authnum, $font);

}

 

for($i=0;$i<100;$i++) //加入干扰象素

{

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);

}

ImagePNG($im);

ImageDestroy($im);

 

$_SESSION['VCODE'] = $vcodes;

?>

 

 

 

原创粉丝点击