[Digikam-devel] better metadata support : added exiv2 depency ?

Gilles Caulier caulier.gilles at kdemail.net
Tue Feb 14 14:55:32 GMT 2006


Hi all,

To support better metadata, especially Exif and IPTC, we need to use a new 
lib. Exiv2 seem to be the better choose actually, to manipulate EXIF and IPTC 
metadata from image file.

http://home.arcor.de/ahuggel/exiv2/

 Actually, Exiv2 support :

- Exif data from JPEG files with a large suppport of special marker notes from 
constructors.
- IPTC data from JPEG files
- Exif data from CRW RW file (Canon tm)

In Digikam::DImg, metadata are just stored like bytes array (DImg is a 
metadata container, no a metadata parser). It's easy to move this metadata  
from an original image to a target image. Actually, JPEG<->PNG Exif/IPTC 
metadata preservation is complete. If you convert a JPEG file including Exif 
data to a PNG file using Image Editor (and vis-versa), you can see the Exif 
metadata including to PNG file with Exif tab from main interface. Look here :

http://digikam3rdparty.free.fr/Screenshots/digikam0.9.0-alpha4.png

Exif/IPTC are store to PNG using standard ImageMagick Raw profile tag...

But we need more metadata preservation :

- RAW Exif/IPTC extraction 
==> http://www.rags-int-inc.com/PhotoTechStuff/RawStandards/RawSummary.html
- TIFF/EP Exif/IPTC manipulation.
- DNG Exif/IPTC manipulation (DNG==TIFF/EP like file. We can plan this file 
format for the future).

Exiv2 will support others image file format in the future, especially more RAW 
files and TIFF/EP files.

In all case, Extracting RAW Exif metadata is possible using dcraw::parse.c 
method. This way is used in neftags2jpeg program dedicaced to extract Exif 
from NEF file :

http://pages.quicksilver.net.nz/pepe/d70/Nikon_D70_on_Linux.html#exif

neftags2jpeg program using Exiv2 to store like a byte array Exif informations 
(:=)))...

In digiKam, this way can be used to make a RAW file parser to extract Exif 
data until that Exiv2 support better RAW file format. To get a complete list 
of RAW file tags, we can get any inspiration from the great exifprobe 
program :

http://www.virtual-cafe.com/~dhh/tools.d/exifprobe.d/exifprobe.html

If we using Exiv2 for 0.9.0, we will using 2 lib about Exif : Exiv2 and 
libkexif (using libexif). Sure in the future, all code depending of libkexif 
must be ported to Exiv2, but this can do later 0.9.0... 

Note : Exiv2 Exif bytes array data is compatible with libkexif. We can extract 
exif metadata using Exiv2 and displaying that using libkexif without 
problem...

Any suggestions welcome.

Gilles Caulier



More information about the Digikam-devel mailing list