我制作了一个使用imagecreatetruecolour()
. imagettftext()
然后它使用该函数向图像添加一个字母。进行了一些其他更改,最后删除了白色背景并将其保存为 PNG 文件。整个事情都放在一个 for 循环中,因此它创建了 250 个图像。
我面临的问题是,有时(大约 250 个中的 10-15 个)在制作图像后似乎没有做任何事情,因此输出是白色方块或黑色方块(大小正确)。
我尝试添加sleep()
它以查看它是否试图太快地创建它们,但问题仍然存在。任何人都知道可能是什么原因造成的?PHP 内存限制是 128MB,所以我认为这不是问题(而且它也会出现在随机位置,有时甚至是第一个图像)。
我很确定这之前没有发布过,但公平地说,我不知道我在寻找什么,所以我可能一直在寻找错误的地方。
//编辑
遗憾的是,我不允许在这里添加整个脚本(公司政策等等),但我可以上传其中的一部分。经过进一步调查后,我将其范围缩小到不选择字母(我将几个变量输出到 csv 并且此列在其他未工作的列上为空白)
所以这是处理该部分的代码:
$exp_str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRUSTUBWXYZ';
$letterArray = str_split($exp_str);
$randLetter = rand(0,55);
$text = $letterArray[$randLetter];
以及将所有图像放在一起的部分:
imagettftext($im, $sizeRand, $angleRand, $posX, $posY, $black, $font, $text);
$filename = 'images/'.$counter.'.png';
错误日志也是空的。
谢谢人们。我在发布代码后发现了错误。不知道我从哪里得到 55,但是是的,这是正确的顺序 - 或者更确切地说是字母,但有些被卡在随机的地方。-