<?php
/*===实例:创建图像验证码===*/
/*(1)产生随机4位字符串*/
$arr = array_merge(range('A','Z'),range('0','9'),range('a','z'));
//打乱数组
shuffle($arr);
//从数组中随机取4位下标
$arrSub = array_rand($arr,4);
//循环数组,取出指定下标对应元素的值
$strRand = '';
foreach ($arrSub as $value) {
$strRand .= $arr[$value];
}
/*(2)分配颜色:背景色、文字颜色*/
$width = 120;
$height = 40;
$img = imagecreatetruecolor($width,$height);
$colorOne = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
$colorTwo = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
$colorThree = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,200),mt_rand(100,255));
/*(3)创建一个空的画布,绘制带填充的矩形*/
imagefilledrectangle($img,0,0,$width,$height,$colorOne);
/*(4)往图像上写入TTF字体串:imagettftext()*/
imagettftext($img,28,0,16,32,$colorTwo,'./shsht.ttf',$strRand);
/*(5)绘制像素点*/
for ($i=0; $i < 200; $i++) {
imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),$colorThree);
}
/*(6)输出图像,并销毁图像*/
header("Content-type:image/png");
imagepng($img);
imagedestroy($img);
图片1.png
图片2.png
图片3.png
往图像上写入一行汉字
例如:
<?php
//创建一个空画布
$img = imagecreatetruecolor(400,100);
//分配颜色
$colorOne = imagecolorallocate($img,0,0,0);//黑色
$colorTwo = imagecolorallocate($img,255,0,0);//红色
//填充背景色
imagefill($img,0,0,$colorOne);
//往图像上写入一行TTF字体的文字(可以是汉字)
$str = '你好啊';
imagettftext($img,28,0,30,60,$colorTwo,'./shsht.ttf',$str);
//输出图像到浏览器
header("Content-type:image/png");
imagepng($img);
//销毁图像资源
imagedestroy($img);
图片4.png
网友评论