c++ - 我应该使用哪种浮点图像格式?

标签 c++ graphics rendering file-format hdrimages

过去我将 RGB 图像(从物理模拟生成)保存为 8 位/ channel PPM 或 PNG 或 JPEG。

现在我想保留模拟输出的动态范围,这意味着保存浮点图像,然后将转换为 8 位/ channel 作为后处理步骤(因此我可以调整转换为 8 位无需再次运行冗长的模拟)。

是否出现了“标准”浮点图像格式?

良好的免费支持库/查看器/操作工具,最好在 Debian 中提供,将是一个奖励。

最佳答案

您是否查看过 Radiance RGBE (.hdr) 和 OpenEXR (.exr)。 RGBE 有一些 source code here . NVIDIA 和 ATI 都在其显卡中支持 EXR 数据。有来自 OpenEXR download page 的源代码和二进制文件. ILM 创建了 OpenEXR,并获得了广泛的支持。 OpenEXR 支持每个 channel 的 16 位和 32 位 float ,这是当今大多数人使用的,除非他们编写了自己的格式。

  • Pixel Image Editor for linux 也支持 EXR 编辑。

  • pfstools如果您要在 linux 上使用 HDR,这也是必要的。它是一组用于读取、写入和操作 HDR 的命令行程序,并具有 Qt 和 OpenGL 查看器。

  • 还有适用于 linux 的 jpeg2exr

  • 还有一些 debian packages供 OpenEXR 查看器使用。

  • 据此看来还有一个Gimp plugin某处。

关于c++ - 我应该使用哪种浮点图像格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623929/

相关文章:

c++ - 验证值的函数在调用 1 个数字时返回 true,但当调用 2 个或更多数字时即使它为 true 也返回 false

java - 图形对象被抑制

java - 在 Swing/AWT GUI 中移动正弦曲线

opengl - 图形管道的哪些部分是使用 CPU 和 GPU 完成的?

android - 测量 Android 应用程序的帧渲染时间

c++ - 创建一个越界数组

c++ - QSslCertificate 如何获取 Windows 中显示的公钥

c++ - Boost Pointer Container - 不能将类存储为 ptr_map 的键

java - 你能让一个图像按钮像android中的位图一样移动吗

css - 如何使用 grails 渲染服务打印折叠标记?