This is in C++ and using ImageInput. 

I did notice after sending my original email that in rawinput.cpp, the method 
read_tiff_metadata() shows how to create a new ImageInput of type ‘TIFF’ and 
then load data into that directly from a filename. That method completely 
bypasses all of the libraw code. Not sure how I overlooked that earlier.

But that would appear to be working because of the (reasonably sound) 
assumption that most RAW files have a TIFF formatted header. Can this technique 
be extended to all image formats that contain embedded metadata? 


> On Aug 7, 2017, at 2:54 AM, Larry Gritz <> wrote:
> Before I give a full answer... 
> C++ or Python? Or command line?
> ImageInput or ImageBuf or ImageCache/TextureSystem? 
> On August 6, 2017 11:34:12 AM PDT, Kenny Carruthers 
> <> wrote:
> Hi,
> I’m using OpenImage IO and extracting the metadata from an image using the 
> extra_attribs() method on ImageSpec. Is there a way to tell OpenImage IO that 
> I’m only going to be accessing the metadata and that no image loading or 
> decoding needs to occur? 
> In particular, the RawInput class, which uses libraw, calls unpack() which is 
> a very slow method because of the RAW decoding that needs to take place. 
> However, that call to unpack() is being made at the start of the 
> ImageInput::open() method and there doesn’t appear to be any flag one can set 
> to disable that. Further down that method, it calls through to 
> read_tiff_metadata() which is really all that one needs if they are only 
> interested in the metadata.
> If I disable libraw support in OpenImageIO, then OIIO defaults to opening a 
> Nikon NEF file with another plugin that only loads the metadata since it 
> can’t load the raw data. That code path is very fast but I don’t know how to 
> trigger it if raw support is built-in (or how to tell the raw plugin itself). 
> Thank you. 
> Kenny Carruthers
> macOS Developer
> Corduroy Code Inc,
> Oiio-dev mailing list
> -- 
> Larry Gritz

Oiio-dev mailing list

Reply via email to