better metadata support : added exiv2 depency ?

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

better metadata support : added exiv2 depency ?

Gilles Caulier-2
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
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

F.J.Cruz
El Martes, 14 de Febrero de 2006 15:55, Gilles Caulier escribió:

> 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

After I have seen some possible choices, I think that exiv2 is the best one at
this moments, so I agree with Gilles.

To Gilles: if I get to finish de icc stuf some day I would like to help you
with metadata code :-/

Paco.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

Bugzilla from bluedrago@web.de
In reply to this post by Gilles Caulier-2
> - RAW Exif/IPTC extraction
Probably you already heard of it. Exiftool
(http://www.sno.phy.queensu.ca/~phil/exiftool/) seems very good and handles
quite much (at least it handles the exif of my nikon D70 raw files, and on
the site there are many many others listed, have a look at it!). The only
problem could be that it is written in perl.

-Dennis
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

Gilles Caulier-2
Le Mardi 14 Février 2006 20:34, Dennis Gnad a écrit :
> > - RAW Exif/IPTC extraction
>
> Probably you already heard of it. Exiftool
> (http://www.sno.phy.queensu.ca/~phil/exiftool/) seems very good and handles
> quite much (at least it handles the exif of my nikon D70 raw files, and on
> the site there are many many others listed, have a look at it!). The only
> problem could be that it is written in perl.
>

Yes i know it. The Exiftool tags doc is excelent, but i don't understand why
this tool hasn't been written in C/C++ for any performance reasons.

We cannot using Exifttol in digiKam. We using C++...

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

Gilles Caulier-2
In reply to this post by F.J.Cruz
Le Mardi 14 Février 2006 16:43, F.J.Cruz a écrit :

> El Martes, 14 de Febrero de 2006 15:55, Gilles Caulier escribió:
> > 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
>
> After I have seen some possible choices, I think that exiv2 is the best one
> at this moments, so I agree with Gilles.
>
> To Gilles: if I get to finish de icc stuf some day I would like to help you
> with metadata code :-/

of course,  no problem. The first is to have all viewpoint about from all...

If you want to study Exif/IPTC/DNG/TIFF-EP/ etc., i recommend to print and
read these links :

TIFF - TIFF/EP :
ftp://ftp.remotesensing.org/pub/libtiff/TIFF6.pdf
http://www.awaresystems.be/imaging/tiff/tifftags.html

nota last libtiff  support already all TIFF/EP tags.

DNG :
http://www.adobe.com/products/dng/pdfs/dng_spec.pdf

nota libtiff will support all DNG tags normally.

Exif/IPTC :
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/
http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
http://www.iptc.org/pages/index.php

Gilles
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

Bugzilla from thorsten.schnebeck@gmx.net
In reply to this post by Gilles Caulier-2
Am Dienstag 14 Februar 2006 20:50 schrieb Caulier Gilles:

> Le Mardi 14 Février 2006 20:34, Dennis Gnad a écrit :
> > > - RAW Exif/IPTC extraction
> >
> > Probably you already heard of it. Exiftool
> > (http://www.sno.phy.queensu.ca/~phil/exiftool/) seems very
> > good and handles quite much (at least it handles the exif of
> > my nikon D70 raw files, and on the site there are many many
> > others listed, have a look at it!). The only problem could be
> > that it is written in perl.
>
> Yes i know it. The Exiftool tags doc is excelent, but i don't
> understand why this tool hasn't been written in C/C++ for any
> performance reasons.

(ok, another try ;-) )

simple question, simple answer:
****
e4l: How come you started writing ExifTool?

PH: It evolved from a few routines I wrote for an image
cataloguing utility
(http://owl.phy.queensu.ca/~phil/icat/) that I wrote initially to
maintain the images in the SNO web site in 2001.  That was my
introduction to Perl -- before that I was mainly a C++ programmer.  
Since then, I have done some rather substantial projects in Perl,
and have really come to enjoy programming in this language.  Now
I find it hard to live without the automatic memory handling,
hash lookups, and regular expressions.

e4l: ExifTool is a Perl library with a comand line tool as
backend. On your homepage you write that this helps to envolve
ExifTool that fast. Now, with 5.00 ready, can you imagine to port
this to a c/c++-lib?

PH: When I decided to add the writing features to ExifTool last
December, I considered rewriting the project in C++ since the
work required to add the writing abilities would be many times
the effort of writing the original utility.  But even if I
ignored the cost of rewriting the existing code, it would have
been twice the work to do this project in C++, so I decided to
use Perl.
****
> We cannot using Exifttol in digiKam. We using C++...

Too bad that there are no scripting hooks so tasks like metatag
handling can be temporary handled by 1st class scripts as long as
the C/C++ libs are still so limited.

I would also start writing a wrapper C++-class for exiftool in any
way you like as I do not see a performance problem. In digiKam
current metatag handling only works on one single photo. So with
a little bit smart code handling fast pic-to-pic clicks in album
view every script ist fast enough for reading and writing a
single file. Slower handling is better than no handling. ;-)

Bye

  Thorsten

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: better metadata support : added exiv2 depency ?

F.J.Cruz
In reply to this post by Gilles Caulier-2
---- Thorsten Schnebeck <[hidden email]> escribió:

> Am Dienstag 14 Februar 2006 20:50 schrieb Caulier Gilles:
> > Le Mardi 14 Février 2006 20:34, Dennis Gnad a écrit :
> > > > - RAW Exif/IPTC extraction
> > >
> > > Probably you already heard of it. Exiftool
> > > (http://www.sno.phy.queensu.ca/~phil/exiftool/) seems very
> > > good and handles quite much (at least it handles the exif of
> > > my nikon D70 raw files, and on the site there are many many
> > > others listed, have a look at it!). The only problem could be
> > > that it is written in perl.
> >
> > Yes i know it. The Exiftool tags doc is excelent, but i don't
> > understand why this tool hasn't been written in C/C++ for any
> > performance reasons.
>
> (ok, another try ;-) )
>
> simple question, simple answer:
> ****
> e4l: How come you started writing ExifTool?
>
> PH: It evolved from a few routines I wrote for an image
> cataloguing utility
> (http://owl.phy.queensu.ca/~phil/icat/) that I wrote initially to
> maintain the images in the SNO web site in 2001.  That was my
> introduction to Perl -- before that I was mainly a C++ programmer.  
> Since then, I have done some rather substantial projects in Perl,
> and have really come to enjoy programming in this language.  Now
> I find it hard to live without the automatic memory handling,
> hash lookups, and regular expressions.
>
> e4l: ExifTool is a Perl library with a comand line tool as
> backend. On your homepage you write that this helps to envolve
> ExifTool that fast. Now, with 5.00 ready, can you imagine to port
> this to a c/c++-lib?
>
> PH: When I decided to add the writing features to ExifTool last
> December, I considered rewriting the project in C++ since the
> work required to add the writing abilities would be many times
> the effort of writing the original utility.  But even if I
> ignored the cost of rewriting the existing code, it would have
> been twice the work to do this project in C++, so I decided to
> use Perl.
> ****
> > We cannot using Exifttol in digiKam. We using C++...
>
> Too bad that there are no scripting hooks so tasks like metatag
> handling can be temporary handled by 1st class scripts as long as
> the C/C++ libs are still so limited.
>
> I would also start writing a wrapper C++-class for exiftool in any
> way you like as I do not see a performance problem. In digiKam
> current metatag handling only works on one single photo. So with
> a little bit smart code handling fast pic-to-pic clicks in album
> view every script ist fast enough for reading and writing a
> single file. Slower handling is better than no handling. ;-)
>
> Bye
>
>   Thorsten
>
> _______________________________________________
> Digikam-devel mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-devel

Well, I agree exiftool is a very good way to get metadata from images, if there is not speed issue and you want/can write a wrapper, I think it could be a good idea.

Paco
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel