[Digikam-devel] [Bug 285157] New: exif lost and versioning disabled when editing an image developed from darktable

Benjamin Schindler bschindler at student.ethz.ch
Fri Oct 28 09:40:01 BST 2011


https://bugs.kde.org/show_bug.cgi?id=285157

           Summary: exif lost and versioning disabled when editing an
                    image developed from darktable
           Product: digikam
           Version: 2.2.0
          Platform: Gentoo Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: NOR
         Component: Versioning
        AssignedTo: digikam-devel at kde.org
        ReportedBy: bschindler at student.ethz.ch


Version:           2.2.0 (using KDE 4.7.2) 
OS:                Linux

I use darktable to develop my raw images because it just works a lot better
than the digikam version for me. 

The problem appears, that when I edit a darktable-jpeg using digikam (e.g. I
cut it), and press save changes, the new file is not stored as a new version of
the older file, but as a new version. Additionally, all exif tags are lost
(That does not happen on every jpeg I've tried, but I have a folder where it is
100% reproducible) and tags are not correctly moved over. The tags from the
original image are stolen - the new image has the tags, the old version does
not (it's a darktable-specific tag: darktable|format|jpeg). I don't mind the
darktable tag, as long it is consistent with the old and new file. 

I set the seriousness of the bug to major because I have no way to get an
edited version of the images with exif tags currently and this is vital
information to me. 

I enabled debug output in digikam, may be it helps pinning down this issue(s)




Reproducible: Sometimes

Steps to Reproduce:
- Take a folder with raw files (I have Nikon NEF's, may be this is relevant)
- Develop the images using darktable
- Edit a file using digikam

Actual Results:  
As I said happens sometimes: 

* Sometimes, the versioning works correctly and the file is recorded correctly
as a new version, sometimes it is not. The debug output is from a session where
it did not. 
* When the versioning does not work, exif tags are lost in the new version,
tags are moved to the new version and the old version has no tags or rating
anymore
* When versioning works, exif tags are preserved, tags *seem* properly
preserved. However, as pointed out, darktable adds a tag darktable|format|jpeg
which is not shown in this case

Expected Results:  
* Versioning should work in any case
* exif and tags/ratings should be properly reserved for original and new
version (these two issues seem connected though)
* as a bonus, it would be phantastic if the files exported from darktable could
be connected to the raw files in digikam (but that's another feature, so forget
about it)


digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7440.jpg"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::DMetadata::getImageHistory: Loading image
history  ""
digikam(9082)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7392.JPG"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::DMetadata::getImageHistory: Loading image
history  ""
digikam(9082)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
digikam(9082)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7440.jpg"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::DMetadata::getImageHistory: Loading image
history  ""
digikam(9082)/digikam (core) Digikam::DImgInterface::getImg: d->image is NULL 
digikam(9082)/digikam (core) Digikam::CurvesWidget::updateData: updating data
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Filling
this curve from other curve  0x2acb2d0
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: This
curve is 8 bit and the other is 16 bit
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Other
is CURVE_SMOOTH
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Other
is CURVE_SMOOTH
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Other
is CURVE_SMOOTH
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Other
is CURVE_SMOOTH
digikam(9082)/digikam (core) Digikam::ImageCurves::fillFromOtherCurves: Other
is CURVE_SMOOTH
digikam(9082)/digikam (core) Digikam::CurvesWidget::restoreCurve: Restoring
curves
digikam(9082)/digikam (core) Digikam::CurvesWidget::restoreCurve: curves 
0x2ae1170  isSixteenBits =  false
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotEffect: Preview 
"Adjust Curves"  started...
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Image 16 bits:
 false
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Curve 16 bits:
 false
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotFilterFinished:
Preview  "Adjust Curves"  completed...
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotEffect: Preview 
"Adjust Curves"  started...
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Image 16 bits:
 false
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Curve 16 bits:
 false
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotFilterFinished:
Preview  "Adjust Curves"  completed...
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotEffect: Preview 
"Adjust Curves"  started...
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Image 16 bits:
 false
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Curve 16 bits:
 false
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotFilterFinished:
Preview  "Adjust Curves"  completed...
digikam(9082)/digikam (core) Digikam::CurvesWidget::saveCurve: Storing curves
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotOk: Final 
"Adjust Curves"  started...
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Image 16 bits:
 false
digikam(9082)/digikam (core) Digikam::CurvesFilter::filterImage: Curve 16 bits:
 false
digikam(9082)/digikam (core) Digikam::EditorToolThreaded::slotFilterFinished:
Final "Adjust Curves"  completed...
digikam(9082)/digikam (core) Digikam::DMetadata::setImageRating: ""  ==>
Rating:  2
digikam(9082)/digikam (core) Digikam::EditorWindow::startingSaveVersion: Saving
image KUrl("file:///home/benjamin/images/2011/München/DSC_7440.jpg")
non-destructive, new version: false , saveAs: false format: ""
digikam(9082)/digikam (core) Digikam::VersionNameCreator::checkNeedNewVersion:
false false false true
digikam(9082)/digikam (core) Digikam::VersionNameCreator::setSaveFileName: need
new version true
digikam(9082)/digikam (core) Digikam::VersionNameCreator::setSaveFileName:
analyzing file "DSC_7440.jpg" QVariant(int, 1) QVariant(int, 1)
digikam(9082)/digikam (core) Digikam::VersionNameCreator::checkIntermediates:
Will replace false save after each session false save after raw false save when
not repro false
digikam(9082)/digikam (core) Digikam::VersionNameCreator::checkIntermediates:
initial history 1 current history 2 first step 1 last step 0
digikam(9082)/digikam (core) Digikam::EditorWindow::startingSaveVersion:
Writing file to 
KUrl("file:///home/benjamin/images/2011/München/DSC_7440_v1.jpg")
digikam(9082)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----
digikam(9082)/digikam (core) Digikam::DImgInterface::saveAs: Saving to :
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp" ( "jpg" )
digikam(9082)/digikam (core) Digikam::DImgInterface::saveNext: Saving file
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp" at -1
digikam(9082)/digikam (core) Digikam::DImgInterface::saveNext: Adjusting image
"jpg" "DSC_7440.jpg" false QMap(("quality", QVariant(int, 81) ) ( "subsampling"
,  QVariant(int, 1) ) )  image: QSize(3900, 2613) false
digikam(9082)/digikam (core) Digikam::JPEGLoader::save: Using LibJPEG medium
chroma-subsampling (4:2:2)
digikam(9082)/digikam (core) Digikam::JPEGLoader::save: Using LibJPEG quality
compression value:  81
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at "/home/benjamin/images/2011/München"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at "/home/benjamin/images/2011/München"
digikam(9082)/digikam (core) Digikam::EditorWindow::slotSavingFinished:
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp" true true
digikam(9082)/digikam (core) Digikam::EditorWindow::moveFile:
KUrl("file:///home/benjamin/images/2011/München/DSC_7440_v1.jpg") true
digikam(9082)/digikam (core) Digikam::EditorWindow::moveFile: moving a local
file
No itemShortInfo could be retrieved from the database for image
"DSC_7440_v1.jpg" 
digikam(9082)/digikam (core) Digikam::ImageWindow::saveVersionIsComplete: save
version done
digikam(9082)/digikam (core) Digikam::ImageWindow::saveAsIsComplete: Saved
KUrl("file:///home/benjamin/images/2011/München/DSC_7440.jpg") to
KUrl("file:///home/benjamin/images/2011/München/DSC_7440_v1.jpg")
digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::ImageScanner::addImage: Adding new item
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"
digikam(9082)/digikam (core) Digikam::DMetadata::getImageHistory: Loading image
history  "<?xml version="1.0"?>
<history version="1">
    <file
uuid="33feb31ab7fa0ed8499b94e55d46fa903e2d52a35d0bebfcee9ffb3b41197de8"
type="original">
        <fileParams fileName="DSC_7440.jpg"
filePath="/home/benjamin/images/2011/"
fileHash="3e2d52a35d0bebfcee9ffb3b41197de8" fileSize="1914415"
creationDate="2011-10-23T11:16:50"/>
    </file>
    <filter filterName="digikam:CurvesFilter" filterDisplayName="Adjust Curves"
filterVersion="1" filterCategory="reproducible">
        <params>
            <param name="curveBitDepth" value="8"/>
            <param name="curveData[0]"
value="AAEBAQAAAAAAAAADAAAAAAAAAAAAAAAtAAAAQwAAAP8AAAD/"/>
            <param name="curveData[1]" value="AAEAAQAAAAAAAAAA"/>
            <param name="curveData[2]" value="AAEAAQAAAAAAAAAA"/>
            <param name="curveData[3]" value="AAEAAQAAAAAAAAAA"/>
            <param name="curveData[4]" value="AAEAAQAAAAAAAAAA"/>
        </params>
    </filter>
</history>
"
digikam(9082)/digikam (core) Digikam::ImageScanner::copyProperties: Copying
properties from 32214 to 32844
digikam(9082)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does
not exist or is not readable: 
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp" 
digikam(9082)/digikam (core)
Digikam::ScanControllerLoadingCacheFileWatch::slotImageChanged: 32844
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::MapViewModelHelper::slotImageChange:
---------------------------------------------------------------
digikam(9082)/digikam (core) Digikam::DImg::load:
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"  : JPEG file identified
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at "/home/benjamin/images/2011/München"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp9082"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp.xmp"
digikam(9082)/digikam (core) Digikam::AlbumManager::slotDirWatchDirty:
KDirWatch detected change at
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg"
digikam(9082)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does
not exist or is not readable: 
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp" 
digikam(9082)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does
not exist or is not readable: 
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp9082" 
digikam(9082)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does
not exist or is not readable: 
"/home/benjamin/images/2011/München/pa9082.digikamtempfile.tmp.xmp" 
digikam(9082)/digikam (core) Digikam::CollectionScanner::scanAlbum: Folder does
not exist or is not readable: 
"/home/benjamin/images/2011/München/DSC_7440_v1.jpg" 
digikam(9082)/KGEOMAP KGeoMap::ItemMarkerTiler::slotSourceModelReset: ----

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Digikam-devel mailing list