[Digikam-devel] Odp: XMP metadata and GPS support

Gilles Caulier caulier.gilles at gmail.com
Wed Jun 20 07:44:14 BST 2007

2007/6/20, Andreas Huggel <ahuggel at gmx.net>:
> XMP support in Exiv2 should use the existing Exiv2 API and
> infrastructure where possible. In particular, the interface to access
> XMP metadata in files should remain Exiv2::Image so that a call to
> Exiv2::Image::readMetadata() scans a file only once and loads Exif,
> IPTC as well as XMP into tag/value structures (ExifData, IptcData,
> XmpData for the time being, eventually, a common class for all
> metadata). This implies that in Exiv2, XMP tags will be accessed with
> keys, similar to the existing Exif and IPTC keys. "Standard" conversion
> classes to convert between Exif, IPTC and XMP could then become part of
> Exiv2.
> If that cannot be done, then I don't see the point of adding XMP support
> to Exiv2.

Totally agree.

Where I see a potential to save time by using Adobe's library/exempi is
> with the low-level decoding and encoding parts, i.e., scanning XML to
> decode the relevant bits (the "keys" and the "values") and the other
> way around on write. And maybe they have code to access file types
> which Exiv2 doesn't support yet.
> Another alternative is of course to use 2 libraries, one for XMP and one
> for Exif/IPTC and develop conversion classes outside of both of them.
> But this would require that the client calls each library's API to read
> its respective metadata, i.e., scans the file twice, and that the
> application maintains the conversion code.

I'm not favorable to use this way. To have a single library used to handle
metadata will be perfect for me. It's more simple to maintain and more

Would it help in the short term if Exiv2::Image provided some kind of
> getXmp/setXmp methods (at least for JPEGs) which would just deal with
> std::string BLOBs containing the raw XML? This would allow to
> read/write the data using Exiv2::Image::read/writeMetadata but require
> some other means to parse the XML.

Fix me if i'm wrong, but I think than XMP meatadata can be hosted in both
way :

With JPEG files :

- a JPEG section.
- an EXIf tag.

With TIFF files :

- a TIFF tag.
- an  Exif Tag.

With PNG :

- A text chunk as byte array (ImageMagick technic)
- A dedicaced PNG chunk (Adobe technic)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-devel/attachments/20070620/c89728d5/attachment.html>

More information about the Digikam-devel mailing list