慕沐1496347
2020-12-01 17:59
<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120,30)
or die('Cannot Initialize new GD image stream');
$bgcolor= imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $bgcolor);
for($i=0;$i<4;$i++){
$fontsize=6;
$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(5,10);
}
imagestring($im,$fontsize, $x,$y,$fontcontent,$fontcolor);
for($i=0;$i<300;$i++){
$pointcolor=imagecolorallocate($im,rand(50,200),rand(50,200),rand(50,200));
imagesetpixel($im,rand(1,120),rand(1,29),$pointcolor);
}
header ('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
$fontcontent只是一个数字,把‘imagestring($im,$fontsize, $x,$y,$fontcontent,$fontcolor);’放进for循环里就好了,每次写一个数字,一共写四次。这里为什么不直接写一个四位数?是因为如果直接写一个四位数无法控制数字间距,而且数字会在一条线上。
就显示一个数字,但是数字可以变
PHP实现验证码制作
37916 学习 · 321 问题
相似问题