OpenEXR 提供了 EXR 文件格式(电影行业的专业级图像存储格式)的规范和参考实现。
EXR 格式的目的是准确有效地表示高动态范围场景线性图像数据和相关元数据,并为多部分、多通道用例提供强大支持。
OpenEXR 广泛应用于精度至关重要的主机应用软件,例如照片级渲染、纹理访问、图像合成、深度合成和 DI。
OpenEXR 项目的目标是保持 EXR 格式的可靠性和现代性,并保持其作为娱乐内容创建的首选图像格式的地位。
重大修订很少发生,并且将仔细权衡新功能与增加的复杂性。 该项目的主要优先事项是:
稳健性、可靠性、安全性
向后兼容性、数据寿命
性能 - 读/写/压缩/解压缩时间
简单、易用、可维护
广泛采用、多平台支持 - Linux、Windows、macOS 等
OpenEXR 仅适用于 2D 数据。它不适合存储体积数据、缓存或照亮的 3D 场景或更复杂的 3D 数据(例如光场)。
Imath 项目的目标是简单性、易用性、正确性和可验证性以及广泛采用。 Imath 并不是一个全面的线性代数或数值分析包。
OpenEXR 是学院软件基金会的一个项目。有关更多信息,请参阅项目的治理政策、贡献指南和行为准则。
有关完整详细信息,请参阅技术文档,但要开始使用,“Hello, world” exrwriter.cpp
编写器程序是:
#include <ImfRgbaFile.h> #include <ImfArray.h> #include <iostream> int main() { try { int width = 10; int height = 10; Imf::Array2D<Imf::Rgba> pixels(width, height); for (int y=0; y<height; y++) for (int x=0; x<width; x++) pixels[y][x] = Imf::Rgba(0, x / (width-1.0f), y / (height-1.0f)); Imf::RgbaOutputFile file ("hello.exr", width, height, Imf::WRITE_RGBA); file.setFrameBuffer (&pixels[0][0], 1, width); file.writePixels (height); } catch (const std::exception &e) { std::cerr << "Unable to read image file hello.exr:" << e.what() << std::endl; return 1; } return 0; }
要构建的CMakeLists.txt
:
cmake_minimum_required(VERSION 3.12) project(exrwriter) find_package(OpenEXR REQUIRED) add_executable(${PROJECT_NAME} exrwriter.cpp) target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)
构建:
$ cmake -S . -B _build -DCMAKE_PREFIX_PATH=<path to OpenEXR libraries/includes> $ cmake --build _build
有关更多详细信息,请参阅 OpenEXR API。
问一个问题:
电子邮件:[email protected]
Slack:academysoftwarefdn#openexr
参加会议:
技术指导委员会会议向公众开放,每两周一次,太平洋时间下午 1:30。
日历:https://lists.aswf.io/g/openexr-dev/calendar
会议记录:https://wiki.aswf.io/display/OEXR/TSC+Meetings
报告错误:
提交问题:https://github.com/AcademySoftwareFoundation/openexr/issues
报告安全漏洞:
发送电子邮件至 [email protected]
贡献修复、功能或改进:
阅读贡献指南和行为准则
签署贡献者许可协议
提交拉取请求:https://github.com/AcademySoftwareFoundation/openexr/pulls
网址:http://www.openexr.com
技术文档:https://openexr.readthedocs.io
移植帮助:OpenEXR/Imath 版本 2.x 到 3.x 移植指南
参考图片:https://github.com/AcademySoftwareFoundation/openexr-images
安全政策:SECURITY.md
发行说明:CHANGES.md
贡献者:CONTRIBUTORS.md
OpenEXR 根据 BSD-3-Clause 许可证获得许可。