Version: 0.9.0-beta2 (using KDE KDE 3.4.2) Installed from: SuSE RPMs OS: Linux metadata info is not written into raw image files even if the format (like Canon raw .cr2) does support both exif and iptc. This is pretty annoying as it basically means that digikam cannot be the first tool in the workflow (which would be download->tag(digikam)->raw convert->postprocess->publish). As the raw converter would keep any exif/iptc information, the tagging would be ok for the whole chain if it was written to the original raw file. Right now, I have to come back to the converted images and tag them again.
This is currently a limitation on Exiv2 library, witch manage metadata workflow. Actually Exiv25 can only write on JPEG file. Normally, next release will support writting for PNG, and TIFF/RAW. Gilles Caulier
*** Bug 134487 has been marked as a duplicate of this bug. ***
Created attachment 21986 [details] Temporary solution for storing iptc and exif in alternate file provied patch (for 0.9.2-final) uses alternate jpg files to store iptc and exif data when storing in original file is not supported. I wrote it because I need to preserve this information for TIFF files but it can also be useful in another case: like readonly filesystem, readonly image or even metadata (keywords, comments rating) shared by more than one image. The location of alternate image is defined in file named ".digikam.alt.txt" (or "digikam.alt.txt") which is searched in album's directory and all directories above: Here is sample content of this file: ----------------- # comment map .*[.]jpg map (.*)/([^/]+) .$1/$2.alt.jpg break next ----------------- # - comment line map fromRegExp to - defines transformation of original path to path of alternate file map skipRegExp - matched files do not have alternate files next - do to dir up ignoring rest of this file break - stop searching The rule is that first match wins. When writing if alternate file is present it is used, if not present first attempt is made to write to original file and if this fails to alternate When reading if alternate file is present it is used otherwise original file is read. I know it should be implemented in kexiv2 and I'm going to do so (so that kipi plugins can use this).
Mistake, should be: map (.*)/([^/]+) $1/.$2.alt.jpg example: /2007/2007-01/x.tiff => /2007/2007-01/.x.tiff.alt.jpg
Piotr, You re-invent the sidecar file (:=)))... This must be done using a standardized way : XMP. Why ? To support interoperability between others photomanagement program. Read the XMP spec page 36 : http://www.adobe.com/devnet/xmp/pdfs/xmp_specification.pdf digiKam 0.10.0 (KDE4 support XMP). Only this way must be used. Note : be patient. Exiv2 tiff write support will be the next major feature implemented (after Exiv2 0.16 release planed in december 2007) Gilles Caulier
*** Bug 168064 has been marked as a duplicate of this bug. ***
Hi all, I have good news about this report. Current svn implementation of Exiv2 (next 0.18 release) start to support writting mode to RAW file based on TIFF/EP format. The first RAW file supported are DNG (Adobe), NEF (Nikon) and PEF (Pentax). Others will come later of course, but we need help with Exiv2 project to improve it (tests, reports, etc...) I CC below the Andreas Huggel message from Exiv2 mailing list for details: // ---------------------------------------------------------------- After some more tweaking, exiv2 can by now successfully write to standard TIFF, TIFF/EP, DNG, NEF and PEF images. SR2 works almost (parts of the makernote are lost) while writing to ARW images will still corrupt the picture. "Writing to the image successfully" means that after modifying or adding any metadata, incl IPTC and XMP, the image structure as reported by exifprobe is intact and it is possible to view the image using ufraw or digiKam without any new errors or warnings. However, I have no proprietary RAW viewer software to test with and only a very limited number of sample images for these TIFF-like RAW formats. So please go ahead and do your own tests and report your successes and problems here. Andreas // ---------------------------------------------------------------- Thanks in advance for your help Gilles Caulier
There is a screenshot of XMP metadata editing into a NEF file in flickr digiKam group: http://farm4.static.flickr.com/3177/2783702020_12ff045dbf_o.png So for me I close this entry now. All is ready from digiKam, kipi-plugins, and libkexiv2 to be able to play with RAW metadata. This include KDE3 and KDE4 versions. Note than all future improvements will come from Exiv2 library, especially to support others RAW formats in writting mode. Note that if you have a RAW camera which is not yet supported by Exiv2 in writting mode, unforget that digiKam host metadata into a database and that you can sync RAW file metadata later in batch using "Tools/Update Metadata Database" menu entry, with a future improved Exiv2. Gilles Caulier
*** This bug has been marked as a duplicate of bug 326408 ***
Git commit 434f065e74282cbb9335c2cc4db256007ca2ae5d by Gilles Caulier. Committed on 08/05/2021 at 16:46. Pushed by cgilles into branch 'master'. ExifTool support: add new method to get list of changes operated on metadata. The goal is to make a temporary EXV file to pass later to ExifTool to patch target file. Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286 M +162 -0 core/libs/metadataengine/engine/metaengine.cpp M +5 -0 core/libs/metadataengine/engine/metaengine.h M +0 -1 core/libs/metadataengine/engine/metaengine_p.cpp https://invent.kde.org/graphics/digikam/commit/434f065e74282cbb9335c2cc4db256007ca2ae5d
Git commit 2cb42fd246428932edd2049c59def826dcc9a420 by Gilles Caulier. Committed on 09/05/2021 at 08:13. Pushed by cgilles into branch 'master'. ExifTool support: now export the list of tags changes from Exif, Iptc, and Xmp in a temporary EXV file. We will pass later this file to ExifTool to patch target file. Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286 M +0 -186 core/libs/metadataengine/engine/metaengine.cpp M +8 -5 core/libs/metadataengine/engine/metaengine.h M +196 -0 core/libs/metadataengine/engine/metaengine_fileio.cpp M +4 -4 core/tests/metadataengine/CMakeLists.txt R +5 -4 core/tests/metadataengine/exportchanges_cli.cpp [from: core/tests/metadataengine/dmetadatadiff_cli.cpp - 082% similarity] https://invent.kde.org/graphics/digikam/commit/2cb42fd246428932edd2049c59def826dcc9a420
Git commit 2ef074a3f5c239bf4674c4cdda5bf99f511d8ae0 by Gilles Caulier. Committed on 09/05/2021 at 13:04. Pushed by cgilles into branch 'master'. ExifTool support: add new method to apply list of changes operated on metadata. A temporary EXV file constainer is computed with the list of changes to operated on Exif, Iptc, and Xmp. This EXV file is processed with ExifTool to patch metadata. Add new CLI test tool to try apply changes with EXV constainer. Here the file is patched with DMetadata::setImageDateTime() which change or add new tags in Exif, Iptc, and Xmp Exemple of changes processed to a CR3 raw image: CR3 ORIGINAL: exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060.CR3_original [EXIF:IFD0:Image] Image Width : 8192 [EXIF:IFD0:Image] Image Height : 5464 [EXIF:IFD0:Image] Bits Per Sample : 8 8 8 [EXIF:IFD0:Image] Compression : JPEG (old-style) [EXIF:IFD0:Camera] Make : Canon [EXIF:IFD0:Camera] Camera Model Name : Canon EOS R5 [EXIF:IFD0:Image] Orientation : Rotate 90 CW [EXIF:IFD0:Image] Resolution Unit : inches [EXIF:IFD0:Author] Artist : kdmurray [EXIF:IFD0:Author] Copyright : [EXIF:ExifIFD:Image] Exposure Time : 1/200 [EXIF:ExifIFD:Image] F Number : 10.0 [EXIF:ExifIFD:Camera] Exposure Program : Manual [EXIF:ExifIFD:Image] ISO : 400 [EXIF:ExifIFD:Image] Sensitivity Type : Recommended Exposure Index [EXIF:ExifIFD:Image] Recommended Exposure Index : 400 [EXIF:ExifIFD:Image] Exif Version : 0231 [EXIF:ExifIFD:Time] Date/Time Original : 2020:09:22 21:27:23 [EXIF:ExifIFD:Time] Offset Time : +10:00 [EXIF:ExifIFD:Time] Offset Time Original : +10:00 [EXIF:ExifIFD:Time] Offset Time Digitized : +10:00 [EXIF:ExifIFD:Image] Components Configuration : Y, Cb, Cr, - [EXIF:ExifIFD:Image] Shutter Speed Value : 1/197 [EXIF:ExifIFD:Image] Aperture Value : 9.9 [EXIF:ExifIFD:Camera] Flash : On, Fired [EXIF:ExifIFD:Camera] Focal Length : 90.0 mm [EXIF:ExifIFD:Image] User Comment : [EXIF:ExifIFD:Time] Sub Sec Time : 59 [EXIF:ExifIFD:Time] Sub Sec Time Original : 59 [EXIF:ExifIFD:Time] Sub Sec Time Digitized : 59 [EXIF:ExifIFD:Image] Flashpix Version : 0100 [EXIF:ExifIFD:Image] Exif Image Width : 8192 [EXIF:ExifIFD:Image] Exif Image Height : 5464 [EXIF:ExifIFD:Camera] Focal Plane X Resolution : 5773.079634 [EXIF:ExifIFD:Camera] Focal Plane Y Resolution : 5769.799366 [EXIF:ExifIFD:Camera] Focal Plane Resolution Unit: inches [EXIF:ExifIFD:Image] Custom Rendered : Normal [EXIF:ExifIFD:Camera] Exposure Mode : Manual [EXIF:ExifIFD:Camera] Scene Capture Type : Standard [EXIF:ExifIFD:Image] Serial Number : 035021000124 [EXIF:ExifIFD:Image] Lens Info : 90mm f/0 [EXIF:ExifIFD:Image] Lens Serial Number : 0000000000 [EXIF:GPS:Location] GPS Version ID : 2.3.0.0 [EXIF:GPS:Location] GPS Altitude Ref : Above Sea Level [EXIF:GPS:Location] GPS Satellites : [EXIF:GPS:Location] GPS Status : Unknown () [EXIF:GPS:Location] GPS Measure Mode : Unknown () [XMP:XMP-xmp:Image] Rating : 0 *EXV constainer generated: exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060_changes.exv [XMP:XMP-x:Document] XMP Toolkit : XMP Core 4.4.0-Exiv2 [XMP:XMP-exif:Time] Date/Time Original : 2021:05:09 15:02:43 [XMP:XMP-exif:Time] Date/Time Digitized : 2021:05:09 15:02:43 [XMP:XMP-tiff:Time] Date/Time Modified : 2021:05:09 15:02:43 [XMP:XMP-xmp:Time] Create Date : 2021:05:09 15:02:43 [XMP:XMP-xmp:Time] Metadata Date : 2021:05:09 15:02:43 [XMP:XMP-xmp:Time] Modify Date : 2021:05:09 15:02:43 *CR3 PATCHED: exiftool]$ exiftool -G:0:1:2:4 -exif:all -xmp:all 2020-09-22_21-27-23_0C4A1060.CR3 [EXIF:IFD0:Image] Image Width : 8192 [EXIF:IFD0:Image] Image Height : 5464 [EXIF:IFD0:Image] Bits Per Sample : 8 8 8 [EXIF:IFD0:Image] Compression : JPEG (old-style) [EXIF:IFD0:Camera] Make : Canon [EXIF:IFD0:Camera] Camera Model Name : Canon EOS R5 [EXIF:IFD0:Image] Orientation : Rotate 90 CW [EXIF:IFD0:Image] Resolution Unit : inches [EXIF:IFD0:Author] Artist : kdmurray [EXIF:IFD0:Author] Copyright : [EXIF:ExifIFD:Image] Exposure Time : 1/200 [EXIF:ExifIFD:Image] F Number : 10.0 [EXIF:ExifIFD:Camera] Exposure Program : Manual [EXIF:ExifIFD:Image] ISO : 400 [EXIF:ExifIFD:Image] Sensitivity Type : Recommended Exposure Index [EXIF:ExifIFD:Image] Recommended Exposure Index : 400 [EXIF:ExifIFD:Image] Exif Version : 0231 [EXIF:ExifIFD:Time] Offset Time : +10:00 [EXIF:ExifIFD:Time] Offset Time Original : +10:00 [EXIF:ExifIFD:Time] Offset Time Digitized : +10:00 [EXIF:ExifIFD:Image] Components Configuration : Y, Cb, Cr, - [EXIF:ExifIFD:Image] Shutter Speed Value : 1/197 [EXIF:ExifIFD:Image] Aperture Value : 9.9 [EXIF:ExifIFD:Camera] Flash : On, Fired [EXIF:ExifIFD:Camera] Focal Length : 90.0 mm [EXIF:ExifIFD:Image] User Comment : [EXIF:ExifIFD:Time] Sub Sec Time : 59 [EXIF:ExifIFD:Time] Sub Sec Time Original : 59 [EXIF:ExifIFD:Time] Sub Sec Time Digitized : 59 [EXIF:ExifIFD:Image] Flashpix Version : 0100 [EXIF:ExifIFD:Image] Exif Image Width : 8192 [EXIF:ExifIFD:Image] Exif Image Height : 5464 [EXIF:ExifIFD:Camera] Focal Plane X Resolution : 5773.079634 [EXIF:ExifIFD:Camera] Focal Plane Y Resolution : 5769.799366 [EXIF:ExifIFD:Camera] Focal Plane Resolution Unit: inches [EXIF:ExifIFD:Image] Custom Rendered : Normal [EXIF:ExifIFD:Camera] Exposure Mode : Manual [EXIF:ExifIFD:Camera] Scene Capture Type : Standard [EXIF:ExifIFD:Image] Serial Number : 035021000124 [EXIF:ExifIFD:Image] Lens Info : 90mm f/0 [EXIF:ExifIFD:Image] Lens Serial Number : 0000000000 [EXIF:GPS:Location] GPS Version ID : 2.3.0.0 [EXIF:GPS:Location] GPS Altitude Ref : Above Sea Level [EXIF:GPS:Location] GPS Satellites : [EXIF:GPS:Location] GPS Status : Unknown () [EXIF:GPS:Location] GPS Measure Mode : Unknown () [XMP:XMP-x:Document] XMP Toolkit : Image::ExifTool 12.00 [XMP:XMP-exif:Time] Date/Time Digitized : 2021:05:09 15:02:43 <====! [XMP:XMP-exif:Time] Date/Time Original : 2021:05:09 15:02:43 <====! [XMP:XMP-photoshop:Time] Date Created : 2021:05:09 15:02:43 <====! [XMP:XMP-tiff:Time] Date/Time Modified : 2021:05:09 15:02:43 <====! [XMP:XMP-xmp:Time] Create Date : 2021:05:09 15:02:43 <====! [XMP:XMP-xmp:Time] Metadata Date : 2021:05:09 15:02:43 <====! [XMP:XMP-xmp:Time] Modify Date : 2021:05:09 15:02:43 <====! [XMP:XMP-xmp:Image] Rating : 0 Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286 M +12 -2 core/libs/metadataengine/exiftool/exiftoolparser.h M +32 -0 core/libs/metadataengine/exiftool/exiftoolparser_command.cpp M +6 -0 core/libs/metadataengine/exiftool/exiftoolparser_output.cpp M +1 -0 core/libs/metadataengine/exiftool/exiftoolprocess.h M +2 -1 core/tests/metadataengine/exiftool/CMakeLists.txt C +20 -19 core/tests/metadataengine/exiftool/exiftoolapplychanges_cli.cpp [from: core/tests/metadataengine/exiftool/exiftoolwrite_cli.cpp - 059% similarity] M +1 -1 core/tests/metadataengine/exiftool/exiftoolwrite_cli.cpp https://invent.kde.org/graphics/digikam/commit/2ef074a3f5c239bf4674c4cdda5bf99f511d8ae0
Git commit 5507cb4c7779f42321d751d3788ee18562df6c9d by Gilles Caulier. Committed on 15/05/2021 at 15:14. Pushed by cgilles into branch 'master'. ExifToolParser: new command to copy tags from source file to a destination file. Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967 M +7 -0 core/libs/metadataengine/exiftool/exiftoolparser.h M +64 -0 core/libs/metadataengine/exiftool/exiftoolparser_command.cpp M +17 -1 core/libs/metadataengine/exiftool/exiftoolprocess.h https://invent.kde.org/graphics/digikam/commit/5507cb4c7779f42321d751d3788ee18562df6c9d
Git commit 8f332525788359d2c13c3e029bfb1b956dd5a4d2 by Gilles Caulier. Committed on 16/05/2021 at 10:09. Pushed by cgilles into branch 'master'. DNGWriter : include ExifTool Error View in Settings Widget. Fix API to check ExifTool program availability. Factoring codes. Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967 M +29 -5 core/libs/dngwriter/dngsettings.cpp M +6 -0 core/libs/dngwriter/dngsettings.h M +3 -10 core/libs/metadataengine/exiftool/exiftoolparser.cpp M +4 -1 core/libs/metadataengine/exiftool/exiftoolparser.h M +31 -21 core/libs/metadataengine/exiftool/exiftoolprocess.cpp M +2 -0 core/libs/metadataengine/exiftool/exiftoolprocess.h https://invent.kde.org/graphics/digikam/commit/8f332525788359d2c13c3e029bfb1b956dd5a4d2
Git commit 067a15c4ed14d75eb2ce3cc725fcba709131392e by Gilles Caulier. Committed on 17/05/2021 at 03:57. Pushed by cgilles into branch 'master'. DPlugin interface; add new method to be able to open an host application setup dialog page from a plugin. DNGWriter: add ExifTool error view to settings Widget. If ExifTool is not available, show error view and allow Related: bug 170693, bug 219856, bug 237504, bug 264210, bug 309341, bug 325458, bug 326408, bug 377622, bug 384092, bug 406540, bug 416516, bug 421464, bug 436286, bug 381967 to customize installation from configuration panel. M +1 -1 core/app/main/digikamapp.cpp M +1 -0 core/app/main/digikamapp_p.h M +28 -0 core/dplugins/bqm/convert/converttodng/converttodng.cpp M +1 -1 core/dplugins/bqm/convert/converttodng/converttodng.h M +20 -1 core/libs/database/utils/ifaces/dbinfoiface.cpp M +2 -0 core/libs/database/utils/ifaces/dbinfoiface.h M +5 -1 core/libs/dngwriter/dngsettings.cpp M +4 -4 core/libs/dngwriter/dngwriter_postprocess.cpp M +4 -1 core/libs/dplugins/iface/dinfointerface.cpp M +13 -0 core/libs/dplugins/iface/dinfointerface.h M +1 -1 core/libs/metadataengine/exiftool/exiftoolparser.cpp M +6 -6 core/libs/widgets/metadata/exiftool/exiftoolconfpanel.cpp M +1 -1 core/libs/widgets/metadata/exiftool/exiftoollistview.cpp M +1 -0 core/showfoto/CMakeLists.txt M +1 -1 core/showfoto/main/showfoto.cpp M +2 -1 core/showfoto/main/showfoto_p.h A +66 -0 core/showfoto/main/showfotoinfoiface.cpp [License: GPL (v2+)] A +51 -0 core/showfoto/main/showfotoinfoiface.h [License: GPL (v2+)] M +2 -2 core/tests/metadataengine/exiftool/exiftoolmulticore_cli.cpp M +14 -1 core/utilities/queuemanager/dplugins/dpluginbqm.cpp M +7 -0 core/utilities/queuemanager/dplugins/dpluginbqm.h M +1 -0 core/utilities/queuemanager/main/queuemgrwindow.h M +10 -0 core/utilities/queuemanager/manager/batchtoolsfactory.cpp M +3 -0 core/utilities/queuemanager/manager/batchtoolsfactory.h https://invent.kde.org/graphics/digikam/commit/067a15c4ed14d75eb2ce3cc725fcba709131392e
Git commit 3a672f38cda7738356f19707a6a634ca91c269e6 by Gilles Caulier. Committed on 07/04/2022 at 04:45. Pushed by cgilles into branch 'master'. Write metadata with ExifTool backend if Exiv2 fails to process, for exemple with RAW files or Video files. Tested successfuly with a MP4 video to insert a comment. For RAW and other king of files as MPO or JPEG with more than 64kB of Exif segement, Exiv2 must be bannned to uses in cases of writting operations as files can be corrupted. This require more regression tests to validate ExifTool uses in place of Exiv2. Related: bug 406540, bug 416516, bug 237504, bug 384092, bug 264210, bug 326408, bug 421464, bug 309341, bug 219856, bug 377622, bug 325458, bug 170693, bug 448729, bug 338075, bug 436876, bug 366348 M +1 -0 core/libs/metadataengine/dmetadata/dmetadata.h M +43 -0 core/libs/metadataengine/dmetadata/dmetadata_exiftool.cpp M +49 -3 core/libs/metadataengine/dmetadata/dmetadata_fileio.cpp M +2 -2 core/libs/metadataengine/exiftool/exiftoolparser.h https://invent.kde.org/graphics/digikam/commit/3a672f38cda7738356f19707a6a634ca91c269e6
Git commit 80ecdd9980c6cf14789606455bf9d367c1ffef51 by Gilles Caulier. Committed on 08/04/2022 at 03:25. Pushed by cgilles into branch 'master'. Use only ExifTool backend to write metadata to RAW files, as Exiv2 is fully unsafe with these kind of operations. Reading and Writing metadata to video files is now delegate to ExifTool Backend too. Related: bug 406540, bug 416516, bug 237504, bug 384092, bug 264210, bug 326408, bug 309341, bug 377622, bug 170693, bug 419801, bug 338075, bug 366348 FIXED-IN: 8.0.0 M +1 -0 NEWS M +13 -0 core/libs/metadataengine/dmetadata/dmetadata_exiftool.cpp M +6 -52 core/libs/metadataengine/engine/metaengine_p.cpp M +4 -20 core/utilities/setup/metadata/setupmetadata.cpp M +3 -4 core/utilities/setup/metadata/setupmetadata_behavior.cpp https://invent.kde.org/graphics/digikam/commit/80ecdd9980c6cf14789606455bf9d367c1ffef51