Bug 91811

Summary: feature request: find pictures by meta tag info, date...
Product: [Applications] digikam Reporter: Nadav Kavalerchik <kaval>
Component: Albums-FiltersAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist CC: mikmach
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: RedHat Enterprise Linux   
OS: Linux   
Latest Commit: Version Fixed In: 0.9.0
Sentry Crash Report:

Description Nadav Kavalerchik 2004-10-21 11:56:07 UTC
Version:           0.7 beta1 (using KDE KDE 3.3.0)
Installed from:    RedHat RPMs
OS:                Linux

please add search or "filter image list by..." to albums based on meta tag info, date and all  other extra data the picture has.
Comment 1 Peeter Russak 2005-05-17 09:57:32 UTC
*** This bug has been confirmed by popular vote. ***
Comment 2 Tom Albers 2005-06-21 19:16:45 UTC
This wish is partially implemented and will be available in digiKam 0.8. The search functions will allow you to search on exif dates and comments. I'll leave this wish open until searching on all exif data is implemented.
Comment 3 caulier.gilles 2006-04-04 11:43:10 UTC
Tom, 

In trunk svn branch, new Digikam::DMetatada class can be used for that. Just need to add new method to use with Exiv2 library. Let's me hear what you need exactly to perform metadata search.

Gilles Caulier
Comment 4 caulier.gilles 2006-04-10 12:11:42 UTC
SVN commit 528157 by cgilles:

digikam from trunk : improving image properties restoration in database using image metadata:

- Fix DMetadata method to get image Exif/Iptc tags properlly. (With the old implementation, Comments from Exif and Iptc, Rating from Iptc and are never checked duing a wrong validity test - stupid bug)
- Now at startup, these informations are backported to database :

  ==> Comments from JFIF section, or Exif UserComments tag, or Iptc Caption tag.
  ==> Date & time stamp from Exif dateTime tag or Iptc date & time tags.
  ==> Rating from Iptc Urgency tag !!! If you add new files in your Album library, witch are rated using Mapivi for example, digiKam items rating will be appear in main interface.

Nota : these updates in database are only performed to new files :

  ==> when all albums are parsed during statup (or manually from Tool menu).
  ==> when new items are downloaded using camera interface.
  ==> when a folder is imported from main interface.

TODO :

- Performed a database update at startup when files are already in database and when metadata have been changed outside digiKam (using ExifTools for example)
- Do something with digiKam Tags, since they are stored in IPTC Keywords tags. This is most complicated to do because there is no hierarchy between IPTC Keywords like with digiKam tags. We store only Tags name in IPTC keywords. I propose : 

  ==> to check if a digiKam tags name already exist in database and taging automaticly item using it. 
  ==> do nothing if Tags name do not exist (no new digiKam Tags will be created in database).
  ==> If dupplicate Tags name exist in digiKam database (for ex. Travel/City and Travel/France/City), use only the first Tag name found in database.

digiKam Tags <==> IPTC Keywords rules is a complex problem. Please give me your viewpoints into B.K.O. Thanks in advance

CCMAIL: digikam-devel@kde.org
CCBUGS: 91811

 M  +9 -4      digikam/albumdb.cpp  
 M  +4 -1      digikam/albumdb.h  
 M  +7 -5      digikam/scanlib.cpp  
 M  +16 -3     kioslave/digikamalbums.cpp  
 M  +4 -4      libs/dmetadata/dmetadata.cpp  
 M  +14 -8     libs/jpegutils/jpegmetadata.cpp  
 M  +9 -5      libs/jpegutils/jpegmetadata.h  
Comment 5 Loïc Brarda 2006-04-10 13:10:53 UTC
My viewpoint :
- Perhaps the database update should be optionnal at startup (enabled by default for newcommers) and availlable from the tool menu. This database update can be time consuming with big databases and experimented users will know when they have changed the IPTC informations on their pictures (and they can go and take a coffee if they trigger the update themselves).

- If the Tag name does not exists, digikam should ask if it should be created or not and where. Of course, there should be a choice to apply the answer only on the actual picture or to all the following (on that session or everytime ?).

- Perhaps the same for duplicate tags : choice between taking the first tag, all tags or ask which one. If first or all is chosen, the following images will be handled automagically else the question will be asked on each duplicate.

Appart from that, "toutes mes félicitations" for all the big work done on that application. IPTC handling was the missing feature that was taking me away from digikam and now, everything is comming in good shape.

Loïc from France near Geneva
Comment 6 caulier.gilles 2006-04-10 13:29:29 UTC
#1 : 

==> database update is already an option in Misc Setup dialog page.

==> About startup time, this will no take any more time that we have actually, because i'm use an instance of a new class named DMetadata using Exiv2. No image dedoder have been used to extract metadata. Exiv2 use a pure file parser (like it does with KFileMetaInfo).

An instance of DMetadata is created for each file parsed. This class extract Exif and IPTC metadata at once. After i just parse in memory the right tags. It's very fast.

Actually only JPEG file are parsed. In the future, We will parse more file types, like TIFF/EP, DNG, NEF, CR2, CRW, etc... Current Exiv2 implementation can support these file formats. Only in this case, startup will be decreased...

#2 #3 : 

==> this can be very wierd to end user if we have importated 100 new image files with differents IPTC keywords (:=)))...

==> perhaps a setup to perform automaticly theses operations can be better.

Gilles From France near Aix en Provence (:=))
Comment 7 caulier.gilles 2006-04-24 16:35:01 UTC
SVN commit 533353 by cgilles:

digikam from trunk : improving image properties restoration in database using image metadata:

- Fix DMetadata method to get image Exif/Iptc tags properlly. (With the old implementation, Comments from Exif and Iptc, Rating from Iptc and are never checked duing a wrong validity test - stupid bug)
- Now at startup, these informations are backported to database :

  ==> Comments from JFIF section, or Exif UserComments tag, or Iptc Caption tag.
  ==> Date & time stamp from Exif dateTime tag or Iptc date & time tags.
  ==> Rating from Iptc Urgency tag !!! If you add new files in your Album library, witch are rated using Mapivi for example, digiKam items rating will be appear in main interface.

Nota : these updates in database are only performed to new files :

  ==> when all albums are parsed during statup (or manually from Tool menu).
  ==> when new items are downloaded using camera interface.
  ==> when a folder is imported from main interface.

TODO :

- Performed a database update at startup when files are already in database and when metadata have been changed outside digiKam (using ExifTools for example)
- Do something with digiKam Tags, since they are stored in IPTC Keywords tags. This is most complicated to do because there is no hierarchy between IPTC Keywords like with digiKam tags. We store only Tags name in IPTC keywords. I propose : 

  ==> to check if a digiKam tags name already exist in database and taging automaticly item using it. 
  ==> do nothing if Tags name do not exist (no new digiKam Tags will be created in database).
  ==> If dupplicate Tags name exist in digiKam database (for ex. Travel/City and Travel/France/City), use only the first Tag name found in database.

digiKam Tags <==> IPTC Keywords rules is a complex problem. Please give me your viewpoints into B.K.O. Thanks in advance

CCMAIL: digikam-devel@kde.org
CCBUGS: 91811

 M  +1 -1      imagedescedittab.cpp  


--- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #533352:533353
@@ -417,7 +417,7 @@
         if (AlbumSettings::instance()->getSaveIptcTags())
         {
             // Store Image Tags like Iptc keywords tag.
-            metadata.setImageKeywords(oldKeywords, d->currInfo->tagNames());
+            metadata.setImageKeywords(oldKeywords, d->currInfo->tagPaths());
         }
 
         if (AlbumSettings::instance()->getSaveIptcPhotographerId())
Comment 8 caulier.gilles 2007-10-02 09:17:15 UTC
Hi all,

Just to please users to be patient (:=)))

digiKam for KDE4 will improve the seach tool to includes all major photo informations. The Database structure will be changed to include a lots of new metadata. The new Database schema is avaialble on svn from this openoffice file:

http://websvn.kde.org/*checkout*/trunk/extragear/graphics/digikam/DBSCHEMA.ODS?revision=708848

Marcel currently work to enable this schema. A new Database front end have be written with a lots of new features as support of multiple root album for ex.

Database management is a tiedous stuff and we won't to test indeep before to give a public version to test. 

Thanks in advance for your patience and your support.

Gilles Caulier
Comment 9 caulier.gilles 2007-10-03 12:27:43 UTC
SVN commit 720609 by cgilles:

digiKam from trunk (KDE4) : XMP metadata management with database.

This is the first stage to control XMP metadata contents with Database contents and vis versa. This code handle XMP with current Database schema witch still the same than 0.9.x.

Marcel work currently on the new databse schema describe on the OpenOffice document available at this url :

http://websvn.kde.org/trunk/extragear/graphics/digikam/DBSCHEMA.ODS?view=log

The code will be adapted later by Marcel to handle more XMP tags according with this new schema.

This is the list of current changes :

- Preparing code to handle strings hosted in different languages (comments for example, dixit B.K.O #98462).
- Handle all Xmp.exif and Xmp.tiff tags has Exif metadata content to get photo informations set by camera.
- Do not set Iptc.Urgency tag with Rating value, but use standard Xmp.Rating tags instead. Import of Iptc.Urgency 
as Rating still running if Xmp metadata are not available. (B.K.O: 134206).
- Preparing code to handle Xmp strings set different authors(comments for example, dixit B.K.O #134476).
- Set the Tags name as Xmp.subject (keywords).
- Set the Copyright/Authors information in Xmp tags (schema inspired from Adobe Photoshop 7.0).
- Store Tags Path List into a dedicaced digiKam.org Xmp namespace as a sequence of strings. Do not use Iptc.Keywords for that. Import from Iptc still running if Xmp metadata is not available. This way is very important to restore properlly in database all tags assigned to an imported picture. There is not strings size limitation with Xmp and char encoding is always UTF-8. Nothing will be lost now.
- Xmp is always stored in pictures format witch support this metadata format : jpeg, png, and tiff.

All these changes require to update libkexiv2 and Exiv2 from trunk to compile and run digiKam properlly.

CCMAIL: digikam-devel@kde.org
CCMAIL: marcel.wiesweg@gmx.de

BUG: 134206
BUG: 149966

CCBUGS: 98462
CCBUGS: 132362
CCBUGS: 91811
CCBUGS: 134476
CCBUGS: 136260
CCBUGS: 146714




 M  +59 -44    digikam/metadatahub.cpp  
 M  +1 -1      libs/database/collectionscanner.cpp  
 M  +127 -71   libs/dmetadata/dmetadata.cpp  
 M  +5 -4      libs/dmetadata/dmetadata.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=720609
Comment 10 Mikolaj Machowski 2007-11-18 22:02:52 UTC
This is actually implemented with latest commits about search bar. Gilles, is it ready for closing?
Comment 11 Arnd Baecker 2007-11-18 22:09:21 UTC
Mikolaj, I don't think so, this wish is about many more fields.
I think this can be implemented only for digikam >=0.10,
when all the fields are available in the database.
Comment 12 caulier.gilles 2007-11-18 22:13:24 UTC
Mik,

No. Please, do not close this file. Search is to perform query on DB around whole albums collection. Filter only query DB about current selected Album. It's different...

Gilles
Comment 13 caulier.gilles 2008-05-26 08:19:07 UTC
I move this file to Filter component. This is the last feature to do to solve this entry. It will be done with KDE4 port

Note : Metadata based search have been fully implemented by Marcel in KDE4 port of digiKam

Gilles Caulier
Comment 14 Mikolaj Machowski 2008-10-28 17:55:37 UTC
Regarding #13 I am closing this as done.