<?php
//实例:图像验证码
/*
(1)产生随机4位字符串
(2)创建一个空的画布,绘制带填充的矩形
(3)分配颜色:背景色、文字颜色
(4)往图像上写入TTF字体串:imagettftext()
(5)输出图像,并销毁图像
*/
//(1)产生随机4位的字符串
$arr1 = array_merge(range('A','Z'),range(0,9),range('a','z'));
shuffle($arr1); //打乱数组
shuffle($arr1); //打乱数组
$arr2 = array_rand($arr1,4); //从数组中随机取4位下标
//循环$arr2,取出指定下标对应的元素的值
$str = "";
foreach($arr2 as $index)
{
$str .= $arr1[$index];
}
//(2)创建一个空的画布
$width = 120;
$height = 40;
$img = imagecreatetruecolor($width,$height);
//(3)绘制带填充的矩形
$color1 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
imagefilledrectangle($img,0,0,$width,$height,$color1);
//(4)写入一行TTF的字符串:将验证码字符串,写入到图像上
$fontfile = "e:/itcast/lesson/PHP4/images/msyh.ttf";
$color3 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
imagettftext($img,28,0,16,32,$color3,$fontfile,$str);
//(5)绘制像素点
for($i=1;$i<=200;$i++)
{
$color2 = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$color2);
}
//(6)输出图像到浏览器
header("content-type:image/png");
imagepng($img);
//(7)销毁图像
imagedestroy($img);