2010-09-23 46 views
1

我在PHP中使用gd將一些文本添加到來自Illustrator的gif圖像。我添加了文字和繪製的數字,不管我如何指定顏色,它們都顯示爲灰色(我猜測灰度爲50%)。gd文本和線條顯示爲來自Illustrator的gif灰色

我在MS Paint中打開圖像並將其重新保存爲gif。當我這樣做時,它給出了顏色損失的警告。但是,當我在新圖像上添加gd時,顏色正確顯示。

這是怎麼回事?它與保存原始文件時使用的調色板有什麼關係?

我正在使用PHP版本5.2.6-1 + lenny9。這裏的GD信息:

GD Support enabled 
GD Version 2.0 or higher 
FreeType Support enabled 
FreeType Linkage with freetype 
FreeType Version 2.3.7 
T1Lib Support enabled 
GIF Read Support enabled 
GIF Create Support enabled 
JPG Support  enabled 
PNG Support  enabled 
WBMP Support enabled 

回答

1

GIF是一個索引顏色格式 - 這意味着圖像具有顏色有限的調色板可供選擇(多達256個,如果我沒有記錯,與GIF)。當你用GD處理圖像時,你必須確保你正確地選擇了圖像資源來複制,修改或者其他任何東西。例如,如果你做的是imagecreatetruecolor(...),那麼這可能是問題 - 因爲圖像資源使用24(?)位真彩色,然後將索引顏色資源複製到其中。像這樣的東西。

沒有做任何更深入的研究(從來沒有這個特別的問題),我猜想使用透明PNG而不是GIF將是一個很好的解決方案。 e:同樣,當從photoshop或illustrator中保存時,請始終使用「Save for web」以避免瀏覽器中出現其他奇怪的顏色問題。

+0

嗯,這是一個電子郵件郵件,所以我認爲我們需要使用GIF的電子郵件客戶端支持。不確定PNG是否得到很好的支持。 – user151841 2010-09-23 16:25:01

+0

在電子郵件中使用PNG絕對沒問題。 – dmp 2010-09-23 16:33:14