Skip to content
The OpenEXR project provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.
C C++ Objective-C M4 Python CMake Other
Branch: master
Clone or download

Latest commit

dgmzc and cary-ilm Fix libc++abi.dylib: Pure virtual function called!
On MacOS, we may end up with the following runtime error.
libc++abi.dylib: Pure virtual function called!

Fix dwaLookup generation which is due to calling the base function from constructor which calls the overriden method run, which causes the base class to call the pure virtual method only, which does not do anything. outfile ended up not being generated.

Signed-off-by: Dorian Gomez <>
Latest commit fa435e2 Mar 10, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
ASWF added some details. Mar 12, 2020
Contrib removed unnecessary .m4 files Oct 21, 2019
IlmBase Add interface includes to IlmBase and OpenEXR Mar 1, 2020
OpenEXR Fix libc++abi.dylib: Pure virtual function called! Apr 2, 2020
OpenEXR_Viewers exrdisplay: limit maximum image size based on available screen resolu… Feb 10, 2020
PyIlmBase fixed a/an use in Matrix33 and Matrix44 Mar 5, 2020
cmake typo Jan 24, 2020
doc adding source .odt files for the .pdf's on the documention page on op… Jul 8, 2019
share/ci Various CI Updates: Jan 27, 2020
util Iterate on formatting, add script to run the formatting Jun 27, 2019
.clang-format Iterate on formatting, add script to run the formatting Jun 27, 2019
.gitignore add b44ExpLogTable.h and dwaLookups.h as official headers Nov 14, 2019 Added #659 and associated commit to 2.4.1 release notes. Feb 11, 2020
CMakeLists.txt Remove OpenEXR_Viewers from the cmake build files and from the INSTAL… Mar 5, 2020
CODEOWNERS - added (generated from "git log") Jun 24, 2019 code of conduct Jul 13, 2019 CLA docs moved from "docs" to "contributors" Feb 27, 2020 Fix typo and added my name to contributors. Sep 2, 2019 change URL to Nov 21, 2019 Typo in cmake now builds three modules, not four. Mar 12, 2020 Update LICENSE to match standard BSD-3-Clause Sep 5, 2019 Fixed typos Jan 9, 2020 Fixed security email address to Jan 24, 2020
azure-pipelines.yml Various CI Updates: Jan 27, 2020 Various CI Updates: Jan 27, 2020

License CII Best Practices Build Status Quality Gate Status


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.

About OpenEXR

OpenEXR is a project of the Academy Software Foundation. The format and library were originally developed by Industrial Light & Magic and first released in 2003. Weta Digital, Walt Disney Animation Studios, Sony Pictures Imageworks, Pixar Animation Studios, DreamWorks, and other studios, companies, and individuals have made contributions to the code base.

OpenEXR is included in the VFX Reference Platform.

OpenEXR Features

  • High dynamic range and color precision.
  • Support for 16-bit floating-point, 32-bit floating-point, and 32-bit integer pixels.
  • Multiple image compression algorithms, both lossless and lossy. Some of the included codecs can achieve 2:1 lossless compression ratios on images with film grain. The lossy codecs have been tuned for visual quality and decoding performance.
  • Extensibility. New compression codecs and image types can easily be added by extending the C++ classes included in the OpenEXR software distribution. New image attributes (strings, vectors, integers, etc.) can be added to OpenEXR image headers without affecting backward compatibility with existing OpenEXR applications.
  • Support for stereoscopic image workflows and a generalization to multi-views.
  • Flexible support for deep data: pixels can store a variable-length list of samples and, thus, it is possible to store multiple values at different depths for each pixel. Hard surfaces and volumetric data representations are accommodated.
  • Multipart: ability to encode separate, but related, images in one file. This allows for access to individual parts without the need to read other parts in the file.
  • Versioning: OpenEXR source allows for user configurable C++ namespaces to provide protection when using multiple versions of the library in the same process space.

The IlmBase Library

Also a part of OpenEXR, the IlmBase library is a basic, light-weight, and efficient 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.

Supported Platforms

OpenEXR builds on Linux, macOS, Microsoft Windows, and is cross-compilable on other systems.

OpenEXR Project Mission

The goal of the OpenEXR project is to keep the EXR format reliable and modern and to maintain its place as the preferred image format for entertainment content creation.

Major revisions are infrequent, and new features will be carefully weighed against increased complexity. The principal priorities of the project are:

  • Robustness, reliability, security
  • Backwards compatibility, data longevity
  • Performance - read/write/compression/decompression time
  • Simplicity, ease of use, maintainability
  • Wide adoption, multi-platform support - Linux, Windows, macOS, and others

OpenEXR is intended solely for 2D data. It is not appropriate for storage of volumetric data, cached or lit 3D scenes, or more complex 3D data such as light fields.

The goals of the IlmBase project are simplicity, ease of use, correctness and verifiability, and breadth of adoption. IlmBase is not intended to be a comprehensive linear algebra or numerical analysis package.

OpenEXR Project Goverance

OpenEXR is hosted by the Academy Software Foundation. See GOVERNANCE for more infomation about how the project operates.

The OpenEXR project is dedicated to promoting a harassment-free community. Read our code of conduct.

Developer Quick Start

See INSTALL for instructions on downloading and building OpenEXR from source.


Getting Help

There are two primary ways to connect with the OpenEXR project:

  • The mail list: This is a development focused mail list with a deep history of technical conversations and decisions that have shaped the project. Subscribe at

  • GitHub Issues: GitHub issues are used both to track bugs and to discuss feature requests.

See CONTRIBUTING for more information.

Getting Involved

OpenEXR welcomes contributions to the project. See CONTRIBUTING for more information about contributing to OpenEXR.


OpenEXR is released under the BSD-3-Clause license. See PATENTS for license information about portions of OpenEXR that are provided under a different license.

Frequently Asked Questions

  • "pip install openexr doesn't work."

    The OpenEXR project provides python bindings for the Imath vector/matrix classes, but it does not provide python bindings for reading, writing, or editing .exr files. The openexrpython module is not affiliated with the OpenEXR project or the ASWF. Please direct questions there.

    Alternatively, OpenImageIO also includes python bindings for OpenEXR.


You can’t perform that action at this time.