PHP GD库学习(基本方法与数字图片验证码事例)

标签输验证码图片。SRC="****.php"例.
 */
// 1、初始化session变量。
session_start();
// 2、设置输出图像的格式。
header('content-type:image/png');
// 3、设置图像宽度。
$w=70;
// 4、设置图像高度。
$h=18;
// 5、创建背景画布。
$num_image=imagecreate($w, $h);
// 6、在画布上创建颜色 注:如果不使用imagefill()函数去填充颜色,画布的背景颜色就为第一次调用imagecolorallocation()时的颜色。
$red = imagecolorallocate($num_image, 230, 0, 0);
$black = imagecolorallocate($num_image, 0, 0, 0);
// 7、定义一个空串用于组装验证码字符串。
$new_number="";
// 8、利用随机函数rand()与循环生成四位的验证码。
for ($i = 0; $i < 4;$i++) {
    $new_number.=dechex(rand(0,15));
//     echo $new_number;
}
// 9、把字符串放进$_SESSION超级全局变量,用于后面取出写到前端和校验。
$_SESSION['check_checks']=$new_number;
// 10、用iamgefill()函数填充画布,参数为刚才创建的颜色。
imagefill($num_image, 0, 0, $red);
// 11、利用循环遍历$_SESSION超级全局变量里的字符串,作用是设置字体的大小、颜色、位置然后写入到画布中。
for ($i = 0; $i < strlen($new_number); $i++) {
//     11.1使用mt_rand()函数生成随机值,设置字体大小。
    $fnt_size=mt_rand(3,5);
//     11.2利用随机数和宽度计算字符写入到画布的x坐标。
    $x=mt_rand(1,8)+$w*$i/4;
//     11.3利用随机数和高度计算字符写入到画布的y坐标,注坐标从左上角点起(0,0)。
    $y=mt_rand(1,intval($h/4));
//     11.4设置每个字体随机颜色值R\G\B三基色。
    $r=mt_rand(0,100);
    $g=mt_rand(0,150);
    $b=mt_rand(0,200);
    $strcolor=imagecolorallocate($num_image,$r,$g,$b);
//     11.5用imagestring()函数把不同颜色字符写到画布上。
    $a=imagestring($num_image,$fnt_size,intval($x),intval($y),$_SESSION['check_checks'][$i], $strcolor);  
}
// 12、用imagepng()创建图片输出格式。
imagepng($num_image);
// 13、imagedestroy()销毁图片释放资源。
imagedestroy($num_image);
// 14、最后在前端标签输验证码图片。SRC="****.php"。
?>

你可能感兴趣的:(php,学习,开发语言)