用画布生成验证码

用画布生成验证码

步骤:

1、定义字符串;2、创建画布;3、颜色;4、填充区域;5、画噪点;6、画噪线;7、画文字;8、输出画布;9、销毁图像

<?php
//案例:生成验证码
header('content-type:image/png');
//字符串,去掉不容易识别的i,l,o,I,L,O
$str="abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ0123456789"	;

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

//颜色
$color=imagecolorallocate($img, 0xcc,0xcc,0xcc);
//填充区域
imagefill($img, 0, 0, $color);

//画噪点
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);
}
//画噪线
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);
}

//画文字
$len=strlen($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*40;
	$y=80;

	imagettftext($img,50, rand(-70,70), $x, $y,$color,$font,$chr);
}

//输出画布
imagepng($img);

//销毁图像(释放占用的资源)
imagedestory($img);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值