From fccf253e3677e023e554641b6118366ef6df937e Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 19 May 2015 18:32:41 +0200 Subject: Support string metadata loading for OpenEXR files. --- source/blender/imbuf/intern/openexr/openexr_api.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source/blender/imbuf/intern/openexr/openexr_api.cpp') diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index 58c5be8b110..b4f81ebeb57 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -1973,6 +1973,21 @@ struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags, char } } + if (flags & IB_metadata) { + const Header & header = file->header(0); + Header::ConstIterator iter; + + for (iter = header.begin(); iter != header.end(); iter++) { + const StringAttribute *attrib = file->header(0).findTypedAttribute (iter.name()); + + /* not all attributes are string attributes so we might get some NULLs here */ + if (attrib) { + IMB_metadata_add_field(ibuf, iter.name(), attrib->value().c_str()); + ibuf->flags |= IB_metadata; + } + } + } + /* file is no longer needed */ delete file; } -- cgit v1.2.3