Hay,我正在使用此代码生成图像并用灰色填充它。
$canvas = imagecreatetruecolor(100, 100);
$gray = imagecolorallocate($canvas, 0xEE, 0xEE, 0xEE);
imagefill($canvas, 0, 0, $gray);
imagegif($canvas);
这样可以正常工作,但如果我将画布大小更改为“长”图像,则无法填充。
$canvas = imagecreatetruecolor(1, 100);
这是一个常见的错误吗?或者我还需要其他选择吗?我如何填满整个画布?
答案 0 :(得分: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");
所以这可能是一种解决方法。