2011-03-09 103 views
2

乾草,我使用此代碼生成圖像並用灰色填充。ImageGD未正確填充

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

這工作得很好,但如果我改變畫布大小「多頭」的形象,它無法填補。

$canvas = imagecreatetruecolor(1, 100); 

這是一個常見的錯誤?或者我需要一些其他的選擇?我如何填滿整個畫布?

+0

你確定它沒有填充,或者你可以不告訴,因爲它是灰色的?嘗試將顏色更改爲紅色並進行雙重檢查 – 2011-03-09 15:04:00

回答

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"); 

所以這可能是一個類型的解決方法。