使用PHP中的GD库在图像上绘图

时间:2014-06-24 20:39:25

标签: php image gd

我创建了一个生成随机模式图像的代码。它创建一个具有给定宽度和高度的图像,并用小的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中......!

1 个答案:

答案 0 :(得分:2)

imagecreate更改为imagecreatetruecolor

您正在创建最多255种颜色的基于调色板的图像。你最后没有颜色用于分配,并且它会在剩余的块上重新调整调色板上的最后一种颜色。