【发布时间】:2012-03-10 05:10:18
【问题描述】:
我正在尝试生成给定大小的完全随机图像。
这是我目前所拥有的:
<?php
$Width = 64;
$Height = 32;
$Image = imagecreate($Width, $Height);
for($Row = 1; $Row <= $Height; $Row++) {
for($Column = 1; $Column <= $Width; $Column++) {
$Red = mt_rand(0,255);
$Green = mt_rand(0,255);
$Blue = mt_rand(0,255);
$Colour = imagecolorallocate ($Image, $Red , $Green, $Blue);
imagesetpixel($Image,$Column - 1 , $Row - 1, $Colour);
}
}
header('Content-type: image/png');
imagepng($Image);
?>
问题在于,在 4 行之后,它不再是随机的,而是用这样的纯色填充
【问题讨论】:
-
使用
imagesetpixel()代替填充的矩形。与 1x1 矩形相比,设置单个像素的开销要少得多。 -
@MarcB 感谢您的提示,让它变得更快,但仍然遇到同样的问题
-
4x64 = 256,这是 8 位图像的限制(因为您没有使用 imagecreateTRUECOLOR())。
-
啊,这是我遗漏的更好的一点。感谢您的帮助
-
@MitchellGrice,我很惊讶您可能会费心尝试再次发帖。你的最后一条评论,“我不想花几个小时来学习 PHP 图像库以及它如何处理像这样微不足道的东西的颜色”,(stackoverflow.com/questions/9643978/…),绝对让我没有心情帮助你问题。我很高兴别人有,但这个网站的全部意义在于学习。如果您对此不感兴趣,请不要费心提问。无论如何,感谢您这次在您的帖子中添加了一些代码。
标签: php image-generation