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

June 19, 2026 - OpenEXR 3.4.13 Released

Patch release that addresses several bugs and security vulnerabilities.

  • 🐛 Fix a regression introduced in v3.4.11 in decoding of DWAA compression

  • 🐛 Fix to handling deep images and very large images with the OpenEXRUtil library

  • 🐛 Fix initiliazation issue in B44A decoding

  • 🐛 Validate HTJ2K chunk header length before decode

  • 🛠️ Fix when building statically and using the vendored OpenJPH library

For the python module:

  • 🐍 ✨ Support NumPy scalar values Box2i and V2f tuple bindings

This release addresses the following security vulnerabilities:

  • CVE-2026-55373 OpenEXRUtil SampleCountChannel endEdit() can loop forever on UINT_MAX sample counts

  • CVE-2026-55371 OpenEXRCore exr_attr_set_bytes() accepts NULL type_hint with positive hint_length

  • CVE-2026-55059 OpenEXRUtil SampleCountChannel row setter heap out-of-bounds write

  • CVE-2026-54920 Integer Overflow and Use of Uninitialized Pointer leading to Invalid Delete in OpenEXRUtil Image Resize

  • CVE-2026-53532 Unhandled assert abort in HTJ2K decoder via crafted QCD marker (DoS)

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