在FreeImage下加载透明图像

时间:2013-02-19 07:35:44

标签: image freeimage

我成功使用酷炫的FreeImage库加载各种格式的图像。

其中,gif和png具有透明度信息。

加载图像后,我使用FreeImage_ConvertToRawBits将它们转换为32bpp。使用我的png图像,这个工作正常,我可以检索所有四个具有有意义的Alpha值的红色/绿色/蓝色/ Alpha组件。

使用gif图像,相反,即使FreeImage_IsTransparent表示正确,Alpha平面仍然全部为255。

我错过了什么?这与GIF调色板的事实有关吗?我该如何处理?

1 个答案:

答案 0 :(得分:2)

通过查看源代码我找到了一个明确的答案:将调色图像转换为32位时,透明度未处理。 Alpha字段始终设置为255。

无论如何,很有可能逐个像素地从原始的调色板位图中检索透明度,知道透明颜色的值(FreeImage_GetTransparentIndex(dib))。