我试图生成给定大小的完全随机图像。
这是我到目前为止所做的:
<?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行之后它会停止随机并填充一个像这样的纯色
答案 0 :(得分:5)
如果你将imagecreate改为imagecreatetruecolor它应该可以工作(其他一切都是相同的,包括参数)
答案 1 :(得分:2)
通过为每个像素分配新颜色,您很快就会耗尽颜色。每行64像素的4行是256.在上腭完整后,任何新颜色都将使用上腭的最后一种颜色。
Mishu的答案使用全彩色图像,而不是索引彩色图像,这就是为什么你能够分配更多颜色。
在PHP文档http://us.php.net/manual/en/function.imagecolorallocate.php#94785
中查看此答案答案 2 :(得分:0)
两者都使用不同的托盘创建图像。真彩色具有更多颜色范围,因此最好使用imagecreatetruecolor()