Feature #467

Interface to access (Exif) metadata in binary form

Added by Andreas Huggel almost 13 years ago. Updated over 2 years ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:


Target version:0.28


The Exif data in a Jpeg image is in an "Exif APP1 segment". This is convenient because it contains all Exif data in a small block of memory (up to 64kB).
Various applications need an interface in Exiv2 to access such a binary Exif representation. Currently this interface is provided by ExifData::load / ExifData::copy (and similarly by IptcData::load / IptcData::copy for IPTC)

Issues with this current implementation:
1) It is specific to Jpeg.
2) It is in the wrong class (see bug #405), ExifData and IptcData shouldn't do parsing/writing of data from/to specific formats
3) There are a few slightly different valid requirements with regards to the beginning of this data block, e.g.:
a) start with the APP1 signature (see bug #465)
b) start with the Exif string (libjpeg)
c) start with the TIFF header (current implementation)

Related issues

Related to Exiv2 - Feature #465: Support standalone JPEG APP1 segments as an Image format Closed
Related to Exiv2 - Bug #613: TiffImage does not honor the writeXmpFromPacket flag Closed 28 Jan 2009


#1 Updated by Andreas Huggel over 12 years ago

Should go in class Image

#2 Updated by Andreas Huggel over 10 years ago

With the introduction of the new TIFF parser, the ExifData::load / ExifData::copy methods moved to ExifParser::decode and ExifParser::encode.

There is still a need to access the binary representation of the Exif data (starting with the TIFF header) of images in JPEG and other formats which have a similar Exif data block.

#3 Updated by Andreas Huggel about 10 years ago

  • Target version set to 1.0

#4 Updated by Robin Mills over 2 years ago

  • Target version changed from 1.0 to 0.28

I'm moving this issue to v0.27. The image->printStructure() interface provides this interface for ICC profiles and I'm confident we can add a kpsPrintStructure enumerator to export binary information to a stream. In v0.26, the user can use $ exiv2 -pX foo.xxx and $ exiv2 -pC foo.xxx to extract XMP and ICC Profiles from an image. I believe it's straightforward to extend this to implement options such as -pE which would create a TIFF from the Exif metadata in an image.

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux