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 l...@larrygritz.com _______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel