2013-02-19 36 views
2

我成功地使用了很酷的FreeImage庫來加載各種格式的圖像。在FreeImage下載透明圖像

其中,GIF和PNG與透明度信息。

加載圖像後,我使用FreeImage_ConvertToRawBits將它們轉換爲32bpp。與我的PNG圖像,這工作正常,我可以檢索所有四個紅/綠/藍/ Alpha組件與有意義的Alpha值。

對於gif圖像,相反,Alpha平面保持全部255,即使FreeImage_IsTransparent表示爲真。

我缺少什麼?這是否與gif是否經過調色?我該如何處理?

回答

2

我通過查看源代碼發現了一個明確的答案:透明處理不當將調色板圖像轉換爲32位時。 Alpha字段始終設置爲255.

無論如何,很有可能從原始調色板位圖逐像素地檢索透明度,知道透明顏色的值(FreeImage_GetTransparentIndex(dib))。