PHP之简易验证码

目录

1 创建图像

2 分配颜色

3 填充颜色

4 绘制直线

5 绘制像素点

6 图像格式

7 销毁图像

8 简易验证码生成


1 创建图像

resource imagecreatetruecolor ( int $width , int $height )

1 width
图像宽度。

2 height
图像高度。

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

2 分配颜色

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

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

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

3 填充颜色

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

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

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

4 绘制直线

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 画一条粗线

5 绘制像素点

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

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

6 图像格式

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

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

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

7 销毁图像

bool imagedestroy ( resource $image )

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

8 简易验证码生成

<?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);
?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值