2

嘿,我正在使用此代码生成图像并用灰色填充它。

$canvas = imagecreatetruecolor(100, 100);
$gray = imagecolorallocate($canvas, 0xEE, 0xEE, 0xEE);
imagefill($canvas, 0, 0, $gray);    
imagegif($canvas);

这很好用,但是如果我将画布大小更改为“长”图像,则无法填充。

$canvas = imagecreatetruecolor(1, 100);

这是一个常见的错误吗?还是我需要其他选择?我如何填充整个画布?

4

1 回答 1

1

看起来像一个错误。我确认同样的行为。如果您将宽度指定为 1,它仅填充顶部 2 个像素。2 或 3 的类似值。4 似乎是一个神奇的值 - 它开始在那里工作。

另一方面,如果您使用 1px 高的图像,则似乎不会出现此错误,即我尝试了此操作,并且按预期工作:

$canvas = imagecreatetruecolor(100, 1);                                                                                                                 
$red = imagecolorallocate($canvas, 0xEE, 0, 0);                                                                                                         
imagefill($canvas, 0, 0, $red);                                                                                                                     
imagegif($canvas, "output.png");  

所以这可能是一种解决方法。

于 2011-03-11T21:51:21.840 回答