[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Openexr-devel] OpenImageIO support for OpenEXR 2.0
From: |
Larry Gritz |
Subject: |
[Openexr-devel] OpenImageIO support for OpenEXR 2.0 |
Date: |
Wed, 10 Oct 2012 21:33:14 -0700 |
Excuse the cross-post or spam, but probably some people here will think this is
relevant.
OpenImageIO has an outstanding pull request
(https://github.com/OpenImageIO/oiio/pull/437) proposing a patch that I believe
adds full support for building against OpenEXR, multi-part files, and
reading/writing deep data. (At long last; I apologize for the delay, I know
many people have been waiting for this.)
I'm hoping that interested parties have a chance to review the changes in the
OIIO APIs and make sure they seem sensible and adequate for your needs, before
they are locked down for a release. Verifying that my amendments to the
documentation make some kind of sense would also be helpful. (I'm less
concerned with the code itself; that can always be fixed later if problems are
found.)
The multi-part exr support didn't need to change the APIs, except to add a new
variety of the "open" method that takes the descriptions of the individual
subimages up front, since the IlmImf implementation requires all the headers to
be given when the multi-part file is first opened. This is now the favored way
to open multi-image files, though the old "appending" convention is still
supported, for those formats that support it (there is a way to query that).
The bigger change is for the deep data reading and writing. No file format we
supported previously had this kind of pixel-varying deep data, so there was
just no obvious way to accommodate it with the existing read/write
scanline/tile/image, and instead I added new "deep" varieties used for this
special case. OpenEXR is the only format that implements it, but I hope that
in the spirit of OIIO's design the API is generic enough to accommodate other
formats that might come along, and certainly it hides the gory details of the
underlying IlmImf classes and calls (whew! the cross-product of scanline/tile x
single/multipart x regular/deep makes for a lot of class juggling).
Anyway, for those still following along, please take a look here:
https://github.com/OpenImageIO/oiio/pull/437
It's really only imageio.h (the public API calls), and the docs in
imageinput.tex and imageoutput.tex, that are important. If you wish to also
see how we actually do the reads and writes of deep data or multi-part, then
exrinput.cpp and exroutput.cpp are the relevant places. All the rest is
housekeeping and support.
Thanks so much, and I hope people find this useful. This is the last set of
changes holding up the 1.1 release, so I'd like to lock the public API, with
any subsequent changes in the 1.1 branch guaranteed not to break link
compatibility.
--
Larry Gritz
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Openexr-devel] OpenImageIO support for OpenEXR 2.0,
Larry Gritz <=