用imagestring怎么使输出位置随机?

用imagestring怎么使输出位置随机?

<?php

//创建画布

$im=imagecreatetruecolor(600, 300);

$width=imagesx($im);

$hight=imagesy($im);

// 颜色随机

$color=imagecolorallocate($im, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));

// 填充颜色

$fill=imagefill($im,0,0,$color);


$a=strtoupper('abcdefghijklmnopqrstuvwxyz');

$string='abcdefghijklmnopqrstuvwxyz1234567890'.$a;


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

// 颜色随机

$strcolor=imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150));

//字符随机

$str=$string[mt_rand(0,strlen($string)-1)];

// 写入字符

imagestring($im, 5, 100+$i*20,100,$str, $strcolor);

}

header('content-type:image/jpeg');

imagejpeg($im,null,75);




正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,imagestring函数的第三个,第四个参数设置字符位置。但由于函数写在循环中所以设置位置之后每个字符的位置都不同,所以可以将字符串内容拼接之后再输出。参考如下:

<?php
//创建画布
$im=imagecreatetruecolor(600, 300);
$width=imagesx($im);
$hight=imagesy($im);
// 颜色随机
$color=imagecolorallocate($im, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
// 填充颜色
$fill=imagefill($im,0,0,$color);
$a=strtoupper('abcdefghijklmnopqrstuvwxyz');
$string='abcdefghijklmnopqrstuvwxyz1234567890'.$a;
$str = '';
for ($i=0; $i <4 ; $i++) {
    // 颜色随机
    $strcolor=imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150));
    //字符随机
    $str.=$string[mt_rand(0,strlen($string)-1)];
}
// 写入字符
imagestring($im, 5, mt_rand(10,500),mt_rand(10,280),$str, $strcolor);
header('content-type:image/jpeg');
imagejpeg($im,null,75);

祝学习愉快!

  • 慕田峪3102890 提问者 #1
    这样四个字母颜色都一样了,能四个字母颜色也不一样吗?
    2019-05-06 20:05:58
  • 好帮手慕查理 回复 提问者 慕田峪3102890 #2
    您好,此时不能设置每个字母颜色不同的。祝学习愉快!
    2019-05-07 09:27:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师