2010-04-12 127 views
3

我正在使用GD輸出一個圖像,這是一個truecolor + alpha通道PNG文件,使用imagepng很好。不過,我希望能夠輸出兼容ie6的256色PNG。根據imagetruecolortopalette的官方文檔:PHP + GD:imagetruecolortopalette不保持透明度

代碼已被修改,以儘可能保留最終的調色板中的alpha通道信息,並儘可能保留顏色。

但是,我發現這個函數的結果根本沒有保留任何透明度。我用this firefox image將文本疊加在上面作爲測試,並且所有功能都給了我一個白色背景和一個奇怪的深藍色邊框。我知道我不希望保留完整的Alpha通道,但是肯定這個功能至少會在透明背景中起作用。有什麼我失蹤?我能採取哪些替代方法?

回答

0

看看imagesavealpha在php文檔 - 我認爲這是你在找什麼。

+0

使用此功能關閉Alpha通道不會將以前透明的圖片部分正確轉換爲透明顏色。 – AlexMax 2010-04-12 14:09:35

3

我最近碰到過這樣的事情 - 我只能得到透明使用工作:

imagesavealpha($im, true); 
imagecolortransparent($im, imagecolorat($im,0,0)); 

我知道,在所有的圖片,左上角的像素是背景顏色。 這些被稱爲imagetruecolortopalette和imagepng之前。

+0

我試過了,看起來不錯,但由於某種原因,我的(WAMP)安裝上的PNG最終完全亂碼。我還試圖將真彩色轉換爲調色板256 PNG圖像,同時保留單一的alpha顏色。 – 2012-04-30 14:06:12

+0

對不起,這個結果似乎只在Corel PhotoPaint中打開時看起來很垃圾,另一方面Photoshop看起來很好(包括透明度)。 – 2012-04-30 14:15:50