.EXR
OpenEXR image
Introduction
OpenEXR is a high dynamic range image format developed by Industrial Light & Magic for visual effects work and released as open source in 2003. It is now looked after by the Academy Software Foundation. Pixels are stored as 16-bit half floats or 32-bit floats, so an image can hold brightness far beyond white without clipping.
An EXR file can hold any number of named channels, such as colour, alpha, depth and the separate passes of a 3D render, and several images or layers in one file. It is the standard interchange format for film, animation and rendering.
Software
- OpenEXR library and tools (Windows, macOS, Linux)
- Blender (Windows, macOS, Linux)
- Nuke (Windows, macOS, Linux)
- Adobe Photoshop (Windows, macOS)
- Affinity Photo (Windows, macOS, iPad)
- GIMP (Windows, macOS, Linux)
- Krita (Windows, macOS, Linux)
- tev HDR viewer (Windows, macOS, Linux)
Structure
An EXR file starts with the magic number 76 2F 31 01 and a 4-byte version
field, whose low byte is 2 and whose higher bits mark tiled, deep and multi-part files.
A header of attributes follows, each a name, a type name, a size and a value, ended by a
zero byte. Required attributes include channels, compression,
dataWindow, displayWindow and lineOrder. All
numbers are little-endian.
After the header comes an offset table with one 8-byte offset per chunk, so a reader can jump to any block of scan lines or any tile. The chunks hold the pixel data, compressed with methods such as ZIP, PIZ, PXR24, B44 or DWAA.
0Magic number76 2F 31 014 bytes4Version and flags4 bytes8Header attributes, ended by a zero bytevaries…Offset table one offset per chunk8 bytes each…Chunks blocks of scan lines or tilesvaries