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. This is a significant difference to most image formats, which store images that are ready for display. Software that handles OpenEXR images may need to process them differently to images in other 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

April 3, 2026 - OpenEXR 3.4.9 Released

Patch release that addresses several security vulnerabilities.

This release also fixes a build issue where the library symlinks would get installed in the incorrect location when overriding the cached install prefix path.

This release addresses the following CVEs:

  • CVE-2026-34589 DWA Lossy Decoder Heap Out-of-Bounds Write

  • CVE-2026-34588 Signed 32-bit Overflow in PIZ Decoder Leads to OOB Read/Write

  • CVE-2026-34380 Signed integer overflow (undefined behavior) in undo_pxr24_impl may allow bounds-check bypass in PXR24 decompression

  • CVE-2026-34379 Misaligned write in LossyDctDecoder_execute leading to undefined behavior (DWA/DWAB decompression)

  • CVE-2026-34378 Signed integer overflow in generic_unpack() when parsing EXR files with crafted negative dataWindow.min.x

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