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 the EXR format is to accurately and efficiently represent high-dynamic-range scene-linear image data. This is a significant difference from most image formats, which store images that are ready for display. Software may need to process OpenEXR images differently from other image formats such as JPEG (see Scene-Linear Image Representation for more details). OpenEXR files have strong support for multi-part, multi-channel use cases, and extensive representation of associated metadata.

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

OpenEXR is a project of the Academy Software Foundation.

Latest News#

_images/news.png

October 2, 2026 - OpenEXR 3.5.2 Released

Patch release that introduces the use of OpenJPH’s built-in LUT to apply the decode/encode transfer function for lossy LJ2K compression.

⚠️ WARNING: EXR files written by OpenEXR v3.5.0 and v3.5.1 using lossy LJ2K compression lack the LUT in their codestream and should be regenerated. This v3.5.2 release includes a backwards compatibility fallback so that such files can be successfully decoded, but for best results, please regenerate any files using LJ2K written by v3.5.0 and v3.5.1. Note that this was incorrectly reported as being included in v3.5.0.

Also in this release:

  • Prebuilt wheels Python 3.14.

  • Fix for a bug when when statically linking when libdeflate, zstd, or OpenJPH is found via pkg-config rather than CMake config (#2673).

  • Pin the IMATH_TAG to v3.2.3; it was previously incorrectly set to main.

  • Pin the JPEG 2000 progression order to RPCL and adds TLM markers to allow efficient random access to resolution layers for J2K compression (#2672)

  • Fix for a failure case in exrcheck involving large images (#2688)

Imath#

The OpenEXR project includes Imath, a basic, light-weight, and efficient C++ 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.

Imath also includes optional python bindings for all types and functions, including optimized implementations of vector and matrix arrays.

Quick Start#

You can install OpenEXR using package managers or build the library yourself from the source on github following the compile instructions

For a simple program that uses the C++ API to read and write a .exr file, see the Hello, World examples.

Community#

Resources#