将浮点 RGBA 位图转换为标准 Dotnet 位图

发布于 2024-12-23 21:11:03 字数 667 浏览 0 评论 0原文

我正在尝试使用 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

I'm trying to use the FreeImage.Net library to open the image and convert it to a standard bitmap, but either there must be a step I'm missing, or FreeImage simply can not convert floating point RGBA to 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

Conversion fails:

Can not convert from type 12 to type 1; No such conversion exists.

I need this as a 32BPP RGBA Bitmap solely for the purpose of being able to convert it into a System.Drawing.Bitmap, so I may draw it using GDI+. I'm willing to use a different image library if necessary, or to consider WPF over Winforms if anyone thinks a solution will be found there.

I've uploaded an example floating point EXR for testing: http://dl.dropbox.com/u/2817180/test.exr

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮萍、无处依 2024-12-30 21:11:03

正如 Niko 所说,你应该手动完成。使用不安全的代码和指针来固定内存缓冲区并使其不可移动,您的例程将执行速度快且易于编写。

如果您只有一种源格式和一种目标格式,则更是如此。

AS Niko said, you should do it manually. Using unsafe code, and pointers that would PIN your memory buffers and make it unmovable, your routine will be both fast in execution and easy to write.

More so if you are having just one source and one target format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文