CINXE.COM
OpenEXR
<!-- SPDX-License-Identifier: BSD-3-Clause --> <!-- Copyright Contributors to the OpenEXR Project. --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"><meta name="viewport" content="width=device-width, initial-scale=1" /> <title>OpenEXR</title> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/theme.css " type="text/css" /> <!-- sphinx script_files --> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=faf5b417"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <!-- bundled in js (rollup iife) --> <!-- <script src="_static/theme-vendors.js"></script> --> <script src="_static/theme.js" defer></script> <link rel="shortcut icon" href="_static/openexr-fav.ico"/> <link rel="author" title="About these documents" href="about.html" /> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="OpenEXR Concepts" href="concepts.html" /> <script async type="text/javascript" src="/_/static/javascript/readthedocs-addons.js"></script><meta name="readthedocs-project-slug" content="openexr" /><meta name="readthedocs-version-slug" content="latest" /><meta name="readthedocs-resolver-filename" content="/" /><meta name="readthedocs-http-status" content="200" /></head> <body> <div id="app"> <div class="theme-container" :class="pageClasses"><navbar @toggle-sidebar="toggleSidebar"> <router-link to="#" class="home-link"> <img class="logo" src="_static/openexr-horizontal-color.png" alt="logo"/> </router-link> <div class="links"> <navlinks class="can-hide"> <div class="nav-item"> <a href="#openexr" class="nav-link "> OpenEXR </a> </div> <div class="nav-item"> <a href="concepts.html#openexr-concepts" class="nav-link "> Concepts </a> </div> <div class="nav-item"> <a href="tools.html#openexr-tools" class="nav-link "> Tools </a> </div> <div class="nav-item"> <a href="API.html#the-openexr-api" class="nav-link "> API </a> </div> <div class="nav-item"> <a href="python.html#the-openexr-python-module" class="nav-link "> Python </a> </div> <div class="nav-item"> <a href="install.html#install" class="nav-link "> Install </a> </div> <div class="nav-item"> <a href="license.html#license" class="nav-link "> License </a> </div> <div class="nav-item"> <a href="news.html#id1" class="nav-link "> News </a> </div> <div class="nav-item"> <a href="about.html#about-openexr" class="nav-link "> About </a> </div> <div class="nav-item"> <a href="test_images/index.html#test-images" class="nav-link "> Test Images </a> </div> <div class="nav-item"> <a href="https://github.com/AcademySoftwareFoundation/openexr" class="nav-link external"> GitHub <outboundlink></outboundlink> </a> </div> </navlinks> </div> </navbar> <div class="sidebar-mask" @click="toggleSidebar(false)"> </div> <sidebar @toggle-sidebar="toggleSidebar"> <navlinks> <div class="nav-item"> <a href="#openexr" class="nav-link "> OpenEXR </a> </div> <div class="nav-item"> <a href="concepts.html#openexr-concepts" class="nav-link "> Concepts </a> </div> <div class="nav-item"> <a href="tools.html#openexr-tools" class="nav-link "> Tools </a> </div> <div class="nav-item"> <a href="API.html#the-openexr-api" class="nav-link "> API </a> </div> <div class="nav-item"> <a href="python.html#the-openexr-python-module" class="nav-link "> Python </a> </div> <div class="nav-item"> <a href="install.html#install" class="nav-link "> Install </a> </div> <div class="nav-item"> <a href="license.html#license" class="nav-link "> License </a> </div> <div class="nav-item"> <a href="news.html#id1" class="nav-link "> News </a> </div> <div class="nav-item"> <a href="about.html#about-openexr" class="nav-link "> About </a> </div> <div class="nav-item"> <a href="test_images/index.html#test-images" class="nav-link "> Test Images </a> </div> <div class="nav-item"> <a href="https://github.com/AcademySoftwareFoundation/openexr" class="nav-link external"> GitHub <outboundlink></outboundlink> </a> </div> </navlinks><div id="searchbox" class="searchbox" role="search"> <div class="caption"><span class="caption-text">Quick search</span> <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Search" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> </div><div class="sidebar-links" role="navigation" aria-label="main navigation"> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="#openexr">OpenEXR</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="concepts.html#openexr-concepts">Concepts</a></span> </p> <ul class=""> <li class="toctree-l1 "> <a href="TechnicalIntroduction.html" class="reference internal ">Technical Introduction to OpenEXR</a> </li> <li class="toctree-l1 "> <a href="StandardAttributes.html" class="reference internal ">Standard Attributes</a> </li> <li class="toctree-l1 "> <a href="MultiViewOpenEXR.html" class="reference internal ">Storing Multi-View Images in OpenEXR Files</a> </li> <li class="toctree-l1 "> <a href="SceneLinear.html" class="reference internal ">Scene-Linear Image Representation</a> </li> <li class="toctree-l1 "> <a href="InterpretingDeepPixels.html" class="reference internal ">Interpreting OpenEXR Deep Pixels</a> </li> <li class="toctree-l1 "> <a href="TheoryDeepPixels.html" class="reference internal ">Theory of Deep Samples</a> </li> <li class="toctree-l1 "> <a href="DeepIDsSpecification.html" class="reference internal ">OpenEXR Deep IDs Specification</a> </li> <li class="toctree-l1 "> <a href="OpenEXRFileLayout.html" class="reference internal ">OpenEXR File Layout</a> </li> <li class="toctree-l1 "> <a href="PortingGuide.html" class="reference internal ">OpenEXR/Imath 2.x to 3.x Porting Guide</a> </li> <li class="toctree-l1 "> <a href="SymbolVisibility.html" class="reference internal ">Symbol Visibility in OpenEXR</a> </li> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="tools.html#openexr-tools">Tools</a></span> </p> <ul class=""> <li class="toctree-l1 "> <a href="bin/exr2aces.html" class="reference internal ">exr2aces</a> </li> <li class="toctree-l1 "> <a href="bin/exrcheck.html" class="reference internal ">exrcheck</a> </li> <li class="toctree-l1 "> <a href="bin/exrenvmap.html" class="reference internal ">exrenvmap</a> </li> <li class="toctree-l1 "> <a href="bin/exrheader.html" class="reference internal ">exrheader</a> </li> <li class="toctree-l1 "> <a href="bin/exrinfo.html" class="reference internal ">exrinfo</a> </li> <li class="toctree-l1 "> <a href="bin/exrmakepreview.html" class="reference internal ">exrmakepreview</a> </li> <li class="toctree-l1 "> <a href="bin/exrmaketiled.html" class="reference internal ">exrmaketiled</a> </li> <li class="toctree-l1 "> <a href="bin/exrmanifest.html" class="reference internal ">exrmanifest</a> </li> <li class="toctree-l1 "> <a href="bin/exrmetrics.html" class="reference internal ">exrmetrics</a> </li> <li class="toctree-l1 "> <a href="bin/exrmultipart.html" class="reference internal ">exrmultipart</a> </li> <li class="toctree-l1 "> <a href="bin/exrmultiview.html" class="reference internal ">exrmultiview</a> </li> <li class="toctree-l1 "> <a href="bin/exrstdattr.html" class="reference internal ">exrstdattr</a> </li> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="API.html#the-openexr-api">API</a></span> </p> <ul class=""> <li class="toctree-l1 "> <a href="HelloWorld.html" class="reference internal ">Hello, World</a> </li> <li class="toctree-l1 "> <a href="ReadingAndWritingImageFiles.html" class="reference internal ">Reading and Writing Image Files with the OpenEXR Library</a> </li> <li class="toctree-l1 "> <a href="OpenEXRCoreAPI.html" class="reference internal ">Reading and Writing Image Files with the C-language API</a> </li> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="python.html#the-openexr-python-module">Python</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="install.html#install">Install</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="license.html#license">License</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="news.html#id1">News</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="about.html#about-openexr">About</a></span> </p> <ul class=""> </ul> </div> <div class="sidebar-group"> <p class="caption"> <span class="caption-text"><a href="test_images/index.html#test-images">Test Images</a></span> </p> <ul class=""> <li class="toctree-l1 "> <a href="test_images/toctree.html" class="reference internal "><no title></a> </li> </ul> </div> </div> </sidebar> <page> <div class="body-header" role="navigation" aria-label="navigation"> <ul class="breadcrumbs"> <li><a href="#">Docs</a> »</li> <li>OpenEXR</li> </ul> <ul class="page-nav"> <li class="next"> <a href="concepts.html" title="next chapter">OpenEXR Concepts →</a> </li> </ul> </div> <hr> <div class="content" role="main" v-pre> <section id="openexr"> <span id="id1"></span><h1>OpenEXR<a class="headerlink" href="#openexr" title="Permalink to this heading">¶</a></h1> <div class="toctree-wrapper compound"> </div> <aside class="sidebar"> <img alt="_images/windowExample1.small.png" src="_images/windowExample1.small.png" /> </aside> <p>OpenEXR provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.</p> <p>The purpose of EXR format is to accurately and efficiently represent high-dynamic-range scene-linear image data. This is a significant difference to most image formats, which store images that are ready for display. Software that handles OpenEXR images may need to process them differently to images in other formats such as JPEG (see <a class="reference internal" href="SceneLinear.html"><span class="doc">Scene-Linear Image Representation</span></a> for more details). OpenEXR files have strong support for multi-part, multi-channel use cases, and extensive representation of associated metadata.</p> <p>OpenEXR is widely used in host application software where accuracy is critical, such as photorealistic rendering, texture access, image compositing, deep compositing, and DI.</p> <p>OpenEXR is a project of the <a class="reference external" href="https://www.aswf.io">Academy Software Foundation</a>.</p> <section id="latest-news"> <h2>Latest News<a class="headerlink" href="#latest-news" title="Permalink to this heading">¶</a></h2> <a class="reference internal image-reference" href="_images/news.png"><img alt="_images/news.png" class="align-left" src="_images/news.png" style="width: 50px; height: 50px;" /></a> <p><strong>February 8, 2025 - Beta release of support for HTJ2K in OpenEXR</strong></p> <blockquote class="highlights"> <div><p>We have a proposal that adds support for lossless JPEG 2000 coding (as the HT256 compressor) to OpenEXR and would welcome your feedback.</p> <p>The HT256 compressor uses the High-Throughput (HT) block coder and promises high speed and high coding efficiency, and it supports the full range of OpenEXR features, including 32-bit floating-point image channels. The HT block coder, which is standardized in <a class="reference external" href="https://loc.gov/preservation/digital/formats/fdd/fdd000566.shtml">Rec. ITU-T T.814</a> | <a class="reference external" href="https://www.iso.org/standard/76621.html">ISO/IEC 15444-15</a>, is relatively new, and is estimated to increase the speed of JPEG 2000 by roughly an order of magnitude. It is royalty-free, used in cinema and distribution servicing, and implemented in both commercial and open-source toolkits. The proposed integration with OpenEXR currently uses the <a class="reference external" href="https://github.com/aous72/OpenJPH">OpenJPH</a> open-source library. For ease in managing the dependency, the OpenEXR CMake configuration supports automatically fetching and building OpenJPH internally, or linking against an external installation.</p> <p>Support for the HT256 compressor is available now for testing and evaluation on the htj2k-beta branch at <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/tree/htj2k-beta">https://github.com/AcademySoftwareFoundation/openexr/tree/htj2k-beta</a>. We expect to merge this to the main branch in a few weeks and release it officially in August, pending feedback.</p> <p>Note that this branch is provided for evaluation purposes only. The file format may change before final release, so files written with this evaluation branch may not be readable by future OpenEXR releases.</p> <p>To help evaluate performance, the branch includes a new tool, exrmetrics, which reports statistics about read/write time and file size/compression ratio. See <a class="reference external" href="https://openexr.com/en/latest/bin/exrmetrics.html">Tools/exrmetrics</a>. for details. (Note that exrmetrics is also on the main branch, but without HTJ2K support. It will be included with the next official release.)</p> <p>Please provide comments and feedback at the project GitHub Issues page, or on the ASWF #openexr slack. Ping @palemieux with technical questions.</p> <p>We are particularly interested in feedback regarding real-world time/space metrics, as well as any pipeline integration or build issues.</p> </div></blockquote> </section> <section id="imath"> <h2>Imath<a class="headerlink" href="#imath" title="Permalink to this heading">¶</a></h2> <p>The OpenEXR project includes <a class="reference external" href="https://imath.readthedocs.io">Imath</a>, 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 <a class="reference external" href="https://imath.readthedocs.io/en/latest/classes/half.html">half</a> 16-bit floating-point type.</p> <p>Imath also includes optional python bindings for all types and functions, including optimized implementations of vector and matrix arrays.</p> </section> <section id="quick-start"> <h2>Quick Start<a class="headerlink" href="#quick-start" title="Permalink to this heading">¶</a></h2> <p>For a simple program that uses the C++ API to read and write a <code class="docutils literal notranslate"><span class="pre">.exr</span></code> file, see the <a class="reference internal" href="HelloWorld.html"><span class="doc">Hello, World</span></a> examples.</p> </section> <section id="community"> <h2>Community<a class="headerlink" href="#community" title="Permalink to this heading">¶</a></h2> <ul class="simple"> <li><p><strong>Ask a question:</strong></p> <ul> <li><p>Email: <a class="reference external" href="https://lists.aswf.io/g/openexr-dev">openexr-dev@lists.aswf.io</a></p></li> <li><p>Slack: <a class="reference external" href="https://academysoftwarefdn.slack.com/archives/CMLRW4N73">academysoftwarefdn#openexr</a></p></li> </ul> </li> <li><p><strong>Attend a meeting:</strong></p> <ul> <li><p>Technical Steering Committee meetings are open to the public, fortnightly on Thursdays, 1:30pm Pacific Time.</p></li> <li><p>Calendar: <a class="reference external" href="https://zoom-lfx.platform.linuxfoundation.org/meetings/openexr">https://zoom-lfx.platform.linuxfoundation.org/meetings/openexr</a></p></li> <li><p>Meeting Notes: <a class="reference external" href="https://wiki.aswf.io/display/OEXR/TSC+Meetings">https://wiki.aswf.io/display/OEXR/TSC+Meetings</a></p></li> </ul> </li> <li><p><strong>Report a bug:</strong></p> <ul> <li><p>Submit an Issue: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/issues">https://github.com/AcademySoftwareFoundation/openexr/issues</a></p></li> </ul> </li> <li><p><strong>Report a security vulnerability:</strong></p> <ul> <li><p>Email <a class="reference external" href="mailto:security%40openexr.com">security<span>@</span>openexr<span>.</span>com</a></p></li> </ul> </li> <li><p><strong>Contribute a Fix, Feature, or Improvement:</strong></p> <ul> <li><p>Read the <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/blob/main/CONTRIBUTING.md">Contribution Guidelines</a> and <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></p></li> <li><p>Sign the <a class="reference external" href="https://contributor.easycla.lfx.linuxfoundation.org/#/cla/project/2e8710cb-e379-4116-a9ba-964f83618cc5/user/564e571e-12d7-4857-abd4-898939accdd7">Contributor License Agreement</a></p></li> <li><p>Submit a Pull Request: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/pulls">https://github.com/AcademySoftwareFoundation/openexr/pulls</a></p></li> </ul> </li> </ul> </section> <section id="resources"> <h2>Resources<a class="headerlink" href="#resources" title="Permalink to this heading">¶</a></h2> <ul class="simple"> <li><p>Reference images: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr-images">https://github.com/AcademySoftwareFoundation/openexr-images</a></p></li> <li><p>Security policy: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/blob/main/SECURITY.md">SECURITY.md</a></p></li> <li><p>Release notes: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/blob/main/CHANGES.md">CHANGES.md</a></p></li> <li><p>Contributors: <a class="reference external" href="https://github.com/AcademySoftwareFoundation/openexr/blob/main/CONTRIBUTORS.md">CONTRIBUTORS.md</a></p></li> <li><p>Porting Guide: <a class="reference internal" href="PortingGuide.html"><span class="doc">OpenEXR/Imath 2.x to 3.x Porting Guide</span></a></p></li> </ul> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> <div class="toctree-wrapper compound"> </div> </section> </section> </div> <div class="page-nav"> <div class="inner"> <p><center><img height="30" width="160" src="https://artwork.aswf.io/other/aswf/logo/black/aswf-logo-black.svg" /></center></p> <p><small><center>Copyright © OpenEXR a Series of LF Projects, LLC. </center></small></p> <p><small><center>For web site terms of use, trademark policy and other project policies please see <a href="https://lfprojects.org">https://lfprojects.org</a>.</center></small></p> </div> </div> </page> </div></div> </body> </html>