【发布时间】:2012-06-19 13:42:57
【问题描述】:
我正在尝试使用 FreeImage.Net 库打开图像并将其转换为标准位图,但是我必须缺少一个步骤,或者 FreeImage 根本无法将浮点 RGBA 转换为 32BPP RGBA :
FreeImageBitmap fib = new FreeImageBitmap("C:\\test.exr");
Console.WriteLine(fib.ImageType); //FIT_RGBAF
fib.ConvertType(FREE_IMAGE_TYPE.FIT_BITMAP, true); //returns False
转换失败:
无法从类型 12 转换为类型 1;不存在这样的转换。
我需要它作为 32BPP RGBA 位图,只是为了能够将其转换为System.Drawing.Bitmap,因此我可以使用 GDI+ 绘制它。如有必要,我愿意使用不同的图像库,或者如果有人认为在那里可以找到解决方案,我愿意考虑 WPF 而不是 Winforms。
我上传了一个用于测试的浮点 EXR 示例:http://dl.dropbox.com/u/2817180/test.exr
【问题讨论】:
-
好吧,您总是可以从一个位图中读取数据并将其写入另一个...
-
FreeImage.Net 不支持这种转换 - 请参阅 documentation(第 36 页)
-
如果您上传了需要解析的位图文件示例,将会有所帮助。
-
@Niko :这可能是最后的手段,但我觉得应该有更快的方法。
-
@nirbruner :是的,我明白了,但我无法想象为什么转换会这么难。