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¶
May 24, 2026 - OpenEXR 3.4.12 Released
Patch release that addresses several bugs and security vulnerabilities.
🐛 Fix several minor memory leaks recovering from reading invalid files.
🐛 The compressor API incorrectly identfied
HTJ2KandHTJ2K256as lossy; they are lossles.🐛 Fix CMake AVX feature detection that caused DWA SIMD code to fail on certain architectures.
⚠️ The
WidenFilenameutility function is marked as deprecated, to be removed in a future release.✨
exrmetricsnow print the on-disk size of the data portion of each part. Useful for determining compression impact on part dataFor the python module:
🐍 🐛 Reject files where the dataWindows does not match the pixel array dimensions.
🐍 ✨ Support NumPy float vector attributes
🐍 ✨ Reading now skips over invalid parts, returns the valid parts only.
🐍 📖 Doc strings have proper indentation
This release addresses the following security vulnerabilities:
CVE-2026-45696 OpenEXR
ht_undo_implheap-buffer-overflow READ via codestream/channel width mismatch in HTJ2K decodeCVE-2026-44663 Integer overflow in HTJ2K decoder (
ht_undo_impl) leading to heap-buffer-overflowOSS-fuzz 512895184 Null-dereference WRITE in
Imf_4_0::TileProcess::run_decodeOSS-fuzz 512314697 Direct-leak in
internal_exr_add_partOSS-fuzz 508362159 Heap-buffer-overflow in
DwaCompressor_uncompressOSS-fuzz 507413960 Heap-buffer-overflow in
generic_unpack
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¶
Ask a question:
Email: openexr-dev@lists.aswf.io
Slack: academysoftwarefdn#openexr
Attend a meeting:
Technical Steering Committee meetings are open to the public, fortnightly on Thursdays, 1:30pm Pacific Time.
Calendar: https://zoom-lfx.platform.linuxfoundation.org/meetings/openexr
Meeting Notes: https://wiki.aswf.io/display/OEXR/TSC+Meetings
Report a bug:
Submit an Issue: https://github.com/AcademySoftwareFoundation/openexr/issues
Report a security vulnerability:
Email security@openexr.com
Contribute a Fix, Feature, or Improvement:
Read the Contribution Guidelines and Code of Conduct
Sign the Contributor License Agreement
Submit a Pull Request: https://github.com/AcademySoftwareFoundation/openexr/pulls
If you’d like to contribute and could use some ideas of what to do, browse “good first issues” here or on Clotributor.
Resources¶
Reference images: https://github.com/AcademySoftwareFoundation/openexr-images
Security policy: SECURITY.md
Release notes: CHANGES.md
Contributors: CONTRIBUTORS.md
Porting Guide: OpenEXR/Imath 2.x to 3.x Porting Guide