Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在FreeImage下加载具有透明度的图像_Image_Freeimage - Fatal编程技术网

在FreeImage下加载具有透明度的图像

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

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

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

加载图像后,我使用
FreeImage\u convertorawbits
将它们转换为32bpp。对于我的png图像,这很好,我可以用有意义的Alpha值检索所有四个红色/绿色/蓝色/Alpha组件

与gif图像相反,Alpha平面保持所有255,即使
FreeImage\u IsTransparent
表示正确


我错过了什么?这是否与GIF颜色变浅有关?我该怎么处理

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

不管怎样,只要知道透明颜色的值(
FreeImage\u GetTransparentIndex(dib)
),就可以从原始调色板位图逐像素检索透明度