OpenEXR

_images/windowExample1.small.png

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

The purpose of EXR format is to accurately and efficiently representhigh-dynamic-range scene-linear image data. This is a significant difference tomost image formats, which store images that are ready for display. Software thathandles OpenEXR images may need to process them differently to images in otherformats such as JPEG (seeScene-Linear Image Representation for more details). OpenEXR fileshave strong support for multi-part, multi-channel use cases, and extensiverepresentation of associated metadata.

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

OpenEXR is a project of theAcademy Software Foundation.

Latest News

_images/news.png

November 19, 2025 - OpenEXR 3.4.4 Released

Patch release with an optimization to reduce the size of the library.

B44 and DWA compression tables are now initialized at first use ratherthan being hard-coded in the source code and compiled binary. Thisreduces the library size at a slight performance cost. Initializationtakes under a millisecond, but the size of libOpenEXRCore.so isreduced from 890K to 360K.

This also fixes a build issue withILMTHREAD_THREADING_ENABLED whichinadvertently enabled threading when it should have been disabed.

This also fixes a bug where importing the python module from a parentdirectory would fail.

Imath

The OpenEXR project includesImath,a basic, light-weight, and efficient C++ representation of 2D and 3Dvectors and matrices and other simple but useful mathematical objects,functions, and data types common in computer graphics applications,including thehalf 16-bitfloating-point type.

Imath also includes optional python bindings for all types andfunctions, including optimized implementations of vector and matrixarrays.

Quick Start

You caninstall OpenEXR using package managers orbuild the library yourself from thesource on githubfollowing thecompile instructions

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

Community

Resources