【问题标题】:Loading images with transparency under FreeImage在 FreeImage 下加载具有透明度的图像
【发布时间】:2013-02-03 19:38:32
【问题描述】:

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

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

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

相反,对于 gif 图像,Alpha 平面仍然是所有 255,即使 FreeImage_IsTransparent 表示正确。

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

【问题讨论】:

    标签: image freeimage


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2010-12-22
      • 2013-12-08
      • 2013-07-17
      • 2012-03-06
      相关资源
      最近更新 更多