我创建了一个生成随机模式图像的代码。它创建一个具有给定宽度和高度的图像,并用小的40x40像素矩形填充它。 这是我的代码:
<?php
$width = 1000;
$height = 600;
$image_p = imagecreate($width, $height);
$baseR = 255 - rand(0, 100);
$baseG = 255 - rand(0, 100);
$baseB = 255 - rand(0, 100);
for ($i = 0; $i <= floor($width / 40); $i++){
for ($j = 0; $j <= floor($height / 40); $j++){
$val = floor(100 * (rand(0, 100) / 100));
$r = $baseR - $val;
$g = $baseG - $val;
$b = $baseB - $val;
$color = imagecolorallocate($image_p, $r, $g, $b);
imagefilledrectangle($image_p, $i * 40, $j * 40, (($i + 1) * 40), (($j + 1) * 40), $color);
}
}
imagejpeg($image_p, 'my_dir/test.jpg');
&GT;
当我将宽度设置为640这样的值并且高度设置为400时没有问题。但是如果我将宽度设置为1000并且高度设置为800,则右侧将有一个空白区域没有被矩形覆盖的图像。 我在delphi中实现了相同的代码并且它工作得很好,但在PHP中......!
答案 0 :(得分:2)
将imagecreate
更改为imagecreatetruecolor
您正在创建最多255种颜色的基于调色板的图像。你最后没有颜色用于分配,并且它会在剩余的块上重新调整调色板上的最后一种颜色。