1.创建画布(imagecreatetruecolor)
resource imagecreatetruecolor ( int $width , int $height )
新建一个真彩色图像
返回一个图像标识符,代表了一幅大小为 width 和 height 的黑色图像。
返回值:成功后返回图象资源,失败后返回 FALSE 。
$width=300;
$height=200;
$img=imagecreatetruecolor($width,$height);
2.颜色管理(imagecolorallocate)
设置颜色为灰色
$color=imagecolorallocate($img,0xcc,0xcc,0xcc);
3.填充(imagefill)
bool imagefill ( resource $image , int $x , int $y , int $color )
image 图像的坐标 x , y (图像左上角为 0, 0)处用 color 颜色执行区域填充
imagefill($img,0,0,$color);
4.画噪点(imagesetpixel)
bool imagesetpixel ( resource $image , int $x , int $y , int $color )
imagesetpixel() 在 image 图像中用 color 颜色在 x , y 坐标(图像左上角为 0,0)上画一个点。
随机画上100个点
for($i=0;$i<100;$i++){
$color=imagecolorallocate($img, rand(0,100), rand(0,100), rand(0,100));
$x=rand(0,$width);
$y=rand(0,$height);
imagesetpixel($img, $x, $y, $color);
}
5.画噪线(imageline)
bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imageline() 用 color 颜色在图像 image 中从坐标 x1 , y1 到 x2 , y2 (图像左上角为 0, 0)画一条线段。
for($i=0;$i<30;$i++){
$color=imagecolorallocate($img, rand(0,100), rand(0,100), rand(0,100));
$x1=rand(0,$width);
$y1=rand(0,$height);
$x2=rand(0,$width);
$y2=rand(0,$height);
imageline($img, $x1, $y1, $x2, $y2, $color);
}
6.画文字(imagettftext)
array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
size :字体的尺寸。angle :角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。
color :颜色索引。fontfile :是想要使用的 TrueType 字体的路径。 text :UTF-8 编码的文本字符串。
随机取四位数
$len=strlen($str);
$font="simsun.ttc";
for($i=0;$i<4;$i++){
$color=imagecolorallocate($img, 40,42,131);
$index=rand(0,$len-1);
$chr=substr($str, $index,1);
$x=50 + $i * 60;
$y=100;
imagettftext($img, 70, rand(-45,45), $x, $y, $color, $font,$chr);
}
7.输出并销毁图像
//输出画布
imagepng($img);
//销毁画布
imagedestroy($img);
最后达到的效果是这样的