在FreeImage下加载具有透明度的图像
我成功地使用酷炫的FreeImage库加载各种格式的图像 其中,gif和png具有透明度信息 加载图像后,我使用在FreeImage下加载具有透明度的图像,image,freeimage,Image,Freeimage,我成功地使用酷炫的FreeImage库加载各种格式的图像 其中,gif和png具有透明度信息 加载图像后,我使用FreeImage\u convertorawbits将它们转换为32bpp。对于我的png图像,这很好,我可以用有意义的Alpha值检索所有四个红色/绿色/蓝色/Alpha组件 与gif图像相反,Alpha平面保持所有255,即使FreeImage\u IsTransparent表示正确 我错过了什么?这是否与GIF颜色变浅有关?我该怎么处理 通过查看源代码,我找到了一个明确的答案:
FreeImage\u convertorawbits
将它们转换为32bpp。对于我的png图像,这很好,我可以用有意义的Alpha值检索所有四个红色/绿色/蓝色/Alpha组件
与gif图像相反,Alpha平面保持所有255,即使FreeImage\u IsTransparent
表示正确
我错过了什么?这是否与GIF颜色变浅有关?我该怎么处理 通过查看源代码,我找到了一个明确的答案:将调色板图像转换为32位时,透明度不被处理。Alpha字段始终设置为255 不管怎样,只要知道透明颜色的值(
FreeImage\u GetTransparentIndex(dib)
),就可以从原始调色板位图逐像素检索透明度