php在浏览器显示画布,php创建个图形,总是浏览器显示乱码为什么

该博客介绍了一个PHP脚本,用于生成带有干扰线和随机黑点的四位数验证码图像。通过rand()函数随机生成数字,然后利用GD库创建和填充图像,绘制干扰线,写入数字并添加干扰点,最后输出为PNG格式。这个过程对于网站的安全验证有重要作用。
摘要由CSDN通过智能技术生成

session_start();

//随即生成一个四位数的数字验证码

$num="";

for($i=0;$i<4;$i++){

$num .=rand(0,9);

}

//4位验证吗也可用rand(1000,9999)直接生成

//将生成的验证码写入session,备验证页面使用

$_SESSION["checknum"]=$num;

//创建图片,定义颜色值

header ("Content-type: image/png");

$im=imagecreate(60,20);

$black=imagecolorallocate($im,0,0,0);

$gray=imagecolorallocate($im,200,200,200);

imagefill($im,0,0,$gray);

//随机绘制两条虚线,起干扰作用

$style=array($black,$black,$black,$black,$black,$gray,$gray,$gray,$gray,$gray);

imagesetstyle($im,$style);

$y1=rand(0,20);

$y2=rand(0,20);

$y3=rand(0,20);

$y4=rand(0,20);

imageline($im,0,$y1,60,$y3,IMG_COLOR_STYLED);

imageline($im,0,$y2,60,$y4,IMG_COLOR_STYLED);

//在画布上随机生成大量黑点,起干扰作用;

for($i=0;$i<80;$i++){

imagesetpixel($im,rand(0,60),rand(0,20),$black);

}

//将数字显示在画布上,数字之间的水平与垂直距离都在一定范围内随机生成

$strx=rand(3,8);

for($i=0;$i<4;$i++){

$strpos=rand(1,6);

imagestring($im,5,$strx,$strpos,substr($num,$i,1),$black);

$strx+=rand(8,12);

}

imagepng($im);

imagedestroy($im);

//ImageDestroy($im);

?>

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值