第十一招 PHP之简易验证码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lwqBrell/article/details/85614623

创建图像

resource imagecreatetruecolor ( int $width , int $height )

imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

width
图像宽度。

height
图像高度。

 

分配颜色

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

imagecolorallocate() 返回一个标识符,代表了由给定的 RGB 成分组成的颜色。red,green 和 blue 分别

是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。

imagecolorallocate() 必须被调用以创建每一种用在 image 所代表的图像中的颜色。

 

填充颜色

bool imagefill ( resource $image , int $x , int $y , int $color )

imagefill() 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 

点颜色相同且相邻的点都会被填充)

绘制直线

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imageline() 用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段。

Example #1 画一条粗线

 

绘制像素点

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。

图像格式

bool imagepng ( resource $image [, string $filename ] )

imagepng() 将 GD 图像流(image)以 PNG 格式输出到标准输出(通常为浏览器),或者如果用 filename 给

出了文件名则将其输出到该文件。

销毁图像

bool imagedestroy ( resource $image )

imagedestroy() 释放与 image 关联的内存。

简易验证码生成

<?php
header ("Content-type: image/png");
$im =imagecreatetruecolor (100, 40);
$image_color = imagecolorallocate ($im, 255, 255, 255);
imagefill($im,0,0,$image_color);

//生成4个伪随机数

for($i=0;$i<4;$i++)
{
	$fontsize=10;
	$fontcolor=imagecolorallocate($im,rand(0,120),rand(0,120),rand(0,120));
	$fontcontent=rand(0,9);
	$x=($i*100/4)+rand(5,10);
	$y=rand(8,10);
	imagestring($im,$fontsize,$x,$y,$fontcontent,$fontcolor);
}

//生成干扰点
for($i=0;$i<300;$i++)
{

	$pixcolor=imagecolorallocate($im,rand(50,200),rand(50,200),rand(50,200));
	imagesetpixel($im,rand(1,99),rand(1,39),$pixcolor);
}

//生成干扰线
for($i=0;$i<5;$i++)
{

	$linecolor=imagecolorallocate($im,rand(50,200),rand(50,200),rand(50,200));
	imageline($im,rand(1,99),rand(0,5),rand(1,99),rand(30,39),$linecolor);
}

//显示验证码
imagepng ($im);

//销毁验证码
imagedestroy ($im);
?>

猜你喜欢

转载自blog.csdn.net/lwqBrell/article/details/85614623