Bug 142564 - digiKam-signature in iptc and exif tags
Summary: digiKam-signature in iptc and exif tags
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Exif (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-05 20:39 UTC by Caspar Maessen
Modified: 2022-01-08 13:39 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 7.5.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Caspar Maessen 2007-03-05 20:39:57 UTC
Version:           0.9.1 (using KDE 3.5.6 "release 31.2" , openSUSE )
Compiler:          Target: i586-suse-linux
OS:                Linux (i686) release 2.6.18.2-34-default

I recently noticed that digiKam edits the tags Exif.Image.Software,
Iptc.Application2.Program and Iptc.Application2.ProgramVersion by 
placing its signature in it. In doing so it is replacing information 
that was originally put there by the camera or by myself. 
I think this is not the correct way to go. Especially in the case of the 
exif-tag where the camera's firmware version is overwritten. As the 
standard states for the exif-tag; "This tag records the name and 
version of the software or firmware of the camera or image input device 
used to generate the image."
In the case of the IPTC-tags, which are meant to "identify the program 
and programversion used to originate the object data", my personal 
information is overwritten.

I would appreciate if this behavior is corrected, or made optional by 
implementing a configuration-setting.

Caspar.
Comment 1 Mikolaj Machowski 2007-03-06 22:27:35 UTC
Agree - Digikam shouldn't overwrite device tag but IMO it is acceptable to enter info about D. when tags where empty. Even if it doesn't follow to the letter specification - D. isn't "camera or image input device". For exif tag it could even not be configurable.

IMO for IPTC tags it should be configurable.
Comment 2 caulier.gilles 2007-03-11 11:29:55 UTC
SVN commit 641435 by cgilles:

libkexiv2 from trunk : set the Exif.Image.Software tag only if it doesn't exist.
BUG: 142564


 M  +16 -4     kexiv2.cpp  


--- trunk/extragear/libs/libkexiv2/kexiv2.cpp #641434:641435
@@ -450,10 +450,22 @@
 {
     try
     {
-        QString software(program);
-        software.append("-");
-        software.append(version);
-        d->exifMetadata["Exif.Image.Software"]              = software.ascii();
+        // Check if Exif.Image.Software already exist. If yes, do not touch this tag.
+            
+        if (!d->exifMetadata.empty())
+	{
+            Exiv2::ExifData exifData(d->exifMetadata);
+            Exiv2::ExifKey key("Exif.Image.Software");
+            Exiv2::ExifData::iterator it = exifData.findKey(key);
+       
+            if (it == exifData.end())
+	    {
+                QString software(program);
+                software.append("-");
+                software.append(version);
+                d->exifMetadata["Exif.Image.Software"]      = software.ascii();
+	    }
+	}
 
         d->iptcMetadata["Iptc.Application2.Program"]        = program.ascii();
         d->iptcMetadata["Iptc.Application2.ProgramVersion"] = version.ascii();