生成验证码

运用主要知识点:imagecreatetruecolor--创建画布,imagecolorallocate--定义颜色,imagefill--填充,imagesetpixel--画点,imageline--画线,imagettftext--绘制文字,imagepng--输出画布,imagedestroy--销毁图像(释放占用资源);
首先我们要写header指令
header('content-type:image/png')–以图片方式输出
//去掉不容易识别的i,l,o,I,L,O
$str=""abcdefghjkmnopqrstuvwzyzABCDEFGHJKMNPKRSTUVWZYZ0123456789

1.创建画布

$width=200;
$height=100;
$img = imagecreatetruecolor($width,$height);

2.定义画布的颜色

$color = imagecolorallocate($img,0xcc,0xcc,0xcc);

3.填充画布

imagefill($img,0, 0, $color);

4.画噪点

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.画噪线

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.画文字

$len = sstrlen($str);
$font = "simsunb.ttf";
for($i=0;$i<4;$i++){
$color = imagecolorallocate($img,255,0,0);
$index = rand(0,$len-1);
$chr = substr($str,$index,1)//取字符
$x = 20 + $i*50;
$y = 80;
imagettftext($img,40,rand(-45,45)$x,$y,$color,Sfont,$chr);
}

7.输出画布

imagepng($img);

8.销毁画布

imagedestroy($img);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值