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.

OpenEXR is a project of the Academy Software Foundation.

Latest News


OpenEXR is participating in the Academy Software Foundation’s Dev Days, a great way to learn about how to contribute to open source software. Project maintainers will be on hand October 12-13 to help guide you through the process of making a simple first contribution.

Read more about Dev Days on the project wiki here.

For Dev Days, pick a simple change you can make within one day’s work. For ideas, consider the “good first issues” on either the OpenEXR Issues page or the Imath Issues page. Feel free to choose any other issue as well, or any other contribution that you find appealing.

Contact the project maintainers via email at or Slack at academysoftwarefdn#openexr. Also, consider attending the OpenEXR Technical Steering Committee Meeting, held every other Thursday at 1:30PM Pacific Time. These are public discussions open to anyone with interest in the project. The times and Zoom link are on the project calendar.

A list of ideas for more substantial contributions is on the OpenEXR wiki. Although these are beyond the scope of the spirit of Dev Days, feel free to discuss these as well.


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

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