OpenEXR

OpenEXR 项目提供了 EXR 文件格式的规范和参考实现,EXR 文件格式是电影行业的专业级图像存储格式。「OpenEXR is a high dynamic-range (HDR) image file format for use in computer imaging applications, originally developed by Industrial Light & Magic, now a part of the Academy Software Foundation.」

Github stars Tracking Chart

OpenEXR

OpenEXR 提供了 EXR 文件格式的规范和参考实现,EXR 文件格式是电影行业的专业级图像存储格式。

EXR 格式的目的是准确有效地表示高动态范围的场景线性图像数据和相关的元数据,并大力支持多部分、多通道的使用情况。

OpenEXR 广泛应用于对精度要求很高的主机应用软件中,如逼真渲染、纹理访问、图像合成、深度合成和 DI 等。

关于 OpenEXR

OpenEXR 是 Academy Software Foundation(学院软件基金会) 的一个项目。该格式和库最初由 Industrial Light & Magic(工业光魔)开发,并在 2003 年首次发布。Weta Digital、Walt Disney Animation Studios、Sony Pictures Imageworks、Pixar Animation Studios、DreamWorks 以及其他工作室、公司和个人都对代码库做出了贡献。

OpenEXR 被收录在 VFX 参考平台 中。

OpenEXR 特性

  • 高动态范围和色彩精度。
  • 支持16位浮点、32位浮点和32位整数像素。
  • 多种图像压缩算法,包括无损和有损。一些包含的编解码器可以在有胶片颗粒的图像上实现 2:1 的无损压缩比。有损编解码器已被调整为视觉质量和解码性能。
  • 可扩展性。通过扩展 OpenEXR 软件发行版中的 C++ 类,可以很容易地添加新的压缩编解码器和图像类型。新的图像属性(字符串、向量、整数等)可以添加到 OpenEXR 图像头中,而不影响与现有 OpenEXR 应用程序的后向兼容性。
  • 支持立体图像工作流,并可通用于多视图。
  • 灵活支持深度数据:像素可以存储一个可变长度的样本列表,因此,可以为每个像素存储不同深度的多个值。可以适应硬表面和体积数据的表示。
  • 多部分:能够在一个文件中编码独立但相关的图像。这允许访问单个部分,而不需要读取文件中的其他部分。
  • 版本化。OpenEXR 源码允许用户配置 C++ 命名空间,以在同一进程空间中使用多个版本的库时提供保护。

OpenEXR 和 Imath 版本 3

随着 OpenEXR 3 的发布,以前通过 OpenEXR 的 IlmBase 组件发布的 Imath 库现在是一个独立的库依赖,可以从 https:://github.com/AcademySoftwareFoundation/Imath 下载。你可以选择针对 Imath 的外部安装来构建 OpenEXR,或者默认的 CMake 配置将在 OpenEXR 构建过程中自动下载并构建它。请注意,Imath 中包含了半16位浮点数据类型。

有关与以前版本的差异以及如何解决这些差异的细节,请参见 移植指南。此外,还请参考移植指南,了解 Imath 变化的详情。

支持的平台

OpenEXR 构建在 Linux、macOS、Microsoft Windows 上,并可在其他系统上交叉编译。

OpenEXR 项目使命

OpenEXR 项目的目标是保持 EXR 格式的可靠性和现代性,并保持其作为娱乐内容创作的首选图像格式的地位。

重大的修订并不频繁,新的功能将与增加的复杂性仔细权衡。该项目的主要优先事项是:

  • 稳健、可靠、安全
  • 向后兼容,数据寿命长
  • 性能 -- 读/写/压缩/解压缩时间
  • 简单性、易用性、可维护性。
  • 广泛的应用,多平台支持 -- Linux、Windows、macOS 和其他平台。

OpenEXR 仅用于二维数据,不适合存储体积数据、缓存或光照的三维场景,或更复杂的三维数据,如光场。

IlmBase 项目的目标是简单性、易用性、正确性和可验证性以及采用的广泛性。IlmBase不是为了成为一个全面的线性代数或数值分析包。

OpenEXR 项目治理

OpenEXR 由 Academy Software Foundation 主持。有关项目运作的更多信息,请参见 管理

OpenEXR 项目致力于促进一个无骚扰的社区。请阅读我们的 行为准则

开发者快速入门

请参阅 INSTALL,了解有关从源码下载和构建 OpenEXR 的说明。

资料

获得帮助

与 OpenEXR 项目的联系有两种主要方式:

  • openexr-dev@lists.aswf.io 邮件列表。这是一个以开发为重点的邮件列表,其中有塑造项目的技术对话和决定的深厚历史。订阅地址:openexr-dev@lists.aswf.io。
  • GitHub问题。GitHub 问题用于跟踪 bug 和讨论功能请求。

更多信息请参见 CONTRIBUTING

参与进来

OpenEXR 欢迎对项目的贡献。请参阅 CONTRIBUTING 了解更多关于对 OpenEXR 贡献的信息。

许可证

OpenEXR 是在 BSD-3-Clause 许可下发布的。请参阅 PATENTS,了解有关 OpenEXR 在不同许可证下提供的部分的许可证信息。

常见问题解答

"pip install openexr 不工作。"

OpenEXR 项目为 Imath 向量/矩阵类提供了 python 绑定,但它并没有提供 python 绑定来读取、写入或编辑 .exr 文件。openexrpython 模块不隶属于 OpenEXR 项目或 ASWF。请直接提问。

另外,OpenImageIO 也包含了 OpenEXR 的 python 绑定。




Overview

Name With OwnerAcademySoftwareFoundation/openexr
Primary LanguageC
Program languageC++ (Language Count: 9)
PlatformLinux, Mac, Windows
License:BSD 3-Clause "New" or "Revised" License
Release Count111
Last Release Namev3.2.4 (Posted on 2024-03-26 09:47:43)
First Release NameOPENEXR_1_0_4 (Posted on )
Created At2012-02-24 06:30:00
Pushed At2024-04-25 06:55:38
Last Commit At
Stargazers Count1.6k
Watchers Count131
Fork Count594
Commits Count2.4k
Has Issues Enabled
Issues Count551
Issue Open Count143
Pull Requests Count968
Pull Requests Open Count12
Pull Requests Close Count205
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

License
CII Best Practices
Build Status
Quality Gate Status

OpenEXR

OpenEXR provides the specification and reference implementation of the
EXR file format, the professional-grade image storage format of the
motion picture industry.

The purpose of EXR format is to accurately and efficiently represent
high-dynamic-range scene-linear image data and associated metadata,
with strong support for multi-part, multi-channel use cases.

OpenEXR is widely used in host application software where accuracy is
critical, such as photorealistic rendering, texture access, image
compositing, deep compositing, and DI.

About OpenEXR

OpenEXR is a project of the Academy Software
Foundation
. The format and library were
originally developed by Industrial Light & Magic and first released
in 2003. Weta Digital, Walt Disney Animation Studios, Sony Pictures
Imageworks, Pixar Animation Studios, DreamWorks, and other studios,
companies, and individuals have made contributions to the code base.

OpenEXR is included in the VFX Reference
Platform
.

OpenEXR Features

  • High dynamic range and color precision.
  • Support for 16-bit floating-point, 32-bit floating-point, and
    32-bit integer pixels.
  • Multiple image compression algorithms, both lossless and lossy. Some of
    the included codecs can achieve 2:1 lossless compression ratios on images
    with film grain. The lossy codecs have been tuned for visual quality and
    decoding performance.
  • Extensibility. New compression codecs and image types can easily be added
    by extending the C++ classes included in the OpenEXR software distribution.
    New image attributes (strings, vectors, integers, etc.) can be added to
    OpenEXR image headers without affecting backward compatibility with
    existing OpenEXR applications.
  • Support for stereoscopic image workflows and a generalization
    to multi-views.
  • Flexible support for deep data: pixels can store a variable-length list
    of samples and, thus, it is possible to store multiple values at different
    depths for each pixel. Hard surfaces and volumetric data representations
    are accommodated.
  • Multipart: ability to encode separate, but related, images in one file.
    This allows for access to individual parts without the need to read other
    parts in the file.
  • Versioning: OpenEXR source allows for user configurable C++
    namespaces to provide protection when using multiple versions of the
    library in the same process space.

The IlmBase Library

Also a part of OpenEXR, the IlmBase library is a basic, light-weight,
and efficient representation of 2D and 3D vectors and matrices and
other simple but useful mathematical objects, functions, and data
types common in computer graphics applications, including the “half”
16-bit floating-point type.

Supported Platforms

OpenEXR builds on Linux, macOS, Microsoft Windows, and is
cross-compilable on other systems.

OpenEXR Project Mission

The goal of the OpenEXR project is to keep the EXR format reliable and
modern and to maintain its place as the preferred image format for
entertainment content creation.

Major revisions are infrequent, and new features will be carefully
weighed against increased complexity. The principal priorities of the
project are:

  • Robustness, reliability, security
  • Backwards compatibility, data longevity
  • Performance - read/write/compression/decompression time
  • Simplicity, ease of use, maintainability
  • Wide adoption, multi-platform support - Linux, Windows, macOS, and others

OpenEXR is intended solely for 2D data. It is not appropriate for
storage of volumetric data, cached or lit 3D scenes, or more complex
3D data such as light fields.

The goals of the IlmBase project are simplicity, ease of use,
correctness and verifiability, and breadth of adoption. IlmBase is not
intended to be a comprehensive linear algebra or numerical analysis
package.

OpenEXR Project Goverance

OpenEXR is hosted by the Academy Software Foundation. See
GOVERNANCE for more infomation about how the project
operates.

The OpenEXR project is dedicated to promoting a harassment-free
community. Read our code of conduct.

Developer Quick Start

See INSTALL for instructions on downloading and building OpenEXR
from source.

Resources

Getting Help

There are two primary ways to connect with the OpenEXR project:

  • The openexr-dev@lists.aswf.io mail list: This is a development
    focused mail list with a deep history of technical conversations and
    decisions that have shaped the project. Subscribe at
    openexr-dev@lists.aswf.io.

  • GitHub Issues: GitHub issues are used both to track bugs and to
    discuss feature requests.

See CONTRIBUTING for more information.

Getting Involved

OpenEXR welcomes contributions to the project. See
CONTRIBUTING for more information about
contributing to OpenEXR.

License

OpenEXR is released under the BSD-3-Clause license. See
PATENTS for license information about portions of
OpenEXR that are provided under a different license.

Frequently Asked Questions

  • "pip install openexr doesn't work."

    The OpenEXR project provides python bindings for the Imath
    vector/matrix classes, but it does not provide python bindings for
    reading, writing, or editing .exr files. The
    openexrpython module
    is not affiliated with the OpenEXR project or the ASWF. Please
    direct questions there.

    Alternatively,
    OpenImageIO also
    includes python bindings for OpenEXR.


aswf

To the top