Bug 462137 - Information about applied Gmic-Qt filter not saved (neither in database nor in metadata Xmp.digiKam.ImageHistory).
Summary: Information about applied Gmic-Qt filter not saved (neither in database nor i...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Editor-GmicQt (show other bugs)
Version: 7.8.0
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-22 17:30 UTC by Johannes
Modified: 2022-11-27 04:14 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.9.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes 2022-11-22 17:30:16 UTC
SUMMARY
The settings used when applying a GMic-Qt filter are not stored in database, table ImageHistory, nor in metadata Xmp.digiKam.ImageHistory.

STEPS TO REPRODUCE
1. Edit an image with Local Contrast 
2. Apply a GMic-Qt filter like Brightness
3. Save the image

OBSERVED RESULT
When hovering about the used filter Local Contrast in sidebar Versions, the used parameters for the filter Local Contrast are shown. Same when looking at metadata Xmp.digiKam.ImageHistory . 
But for the applied GMic-Qt filter, there is no information, not even the name of the used filter:
   <filter filterName="GMic-Qt" filterDisplayName="" filterVersion="1" filterCategory="reproducible" branch="true">
        <params/>
    </filter>

EXPECTED RESULT
filterName and params aren't empty, so something like the following is saved:

   <filter filterName="GMic-Qt:Brightness" filterDisplayName="Brightness" filterVersion="1" filterCategory="reproducible" branch="true">
          <params>
              <param name="Amount" value="30"/>
              <param name="Smooth" value="0"/>
        </params>
    </filter>

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: Ubuntu 20.04.5 LTS
KDE Frameworks Version: 5.96.0
Qt Version: 5.15.5
Comment 1 Maik Qualmann 2022-11-22 18:26:37 UTC
Although I haven't dealt with GMic-Qt much so far, I don't think that we can read out with which module and with which settings the picture was edited. We may just be able to add it as a non-reproducible filter in history. Gilles can say more about this.

Maik
Comment 2 caulier.gilles 2022-11-22 20:58:57 UTC
Hi Maik,

No there is filter action capture from GMicQt. Perhaps it's possible to deal with this and pass to editor for archiving purpose in metadata.
I don't know.

Gilles
Comment 3 caulier.gilles 2022-11-22 21:05:17 UTC
To deal with gmicqt plugin, the host must implement these methods in interface :

https://github.com/cgilles/gmic-qt/blob/master/src/Host/GmicQtHost.h

There is nothing to know the list of operations done by user on image...

Gilles Caulier
Comment 4 caulier.gilles 2022-11-26 11:23:52 UTC
I finally found a way to get last filter parameters and store it to digiKam Filter Actions container :

https://github.com/cgilles/gmic-qt/commit/056221663135d459be93baca370b7d98c64bec76
https://github.com/cgilles/gmic-qt/commit/f4f3e836a775fbb5e50b51862957f7ad60f2730f

Gilles Caulier
Comment 5 caulier.gilles 2022-11-27 04:14:26 UTC
Exemple of XMP metadata saved in digiKam namespace aftrr to apply GmicQt::BlackAndWhite filter :

gilles@U22:~/Pictures$ exiv2 -px pexels-chevanon-photography-bw.jpg 
Xmp.digiKam.ImageHistory                     XmpText   1280  <?xml version="1.0"?>
<history version="1">
    <file uuid="5bc5800e37a6a503b3553f0375cb4809325a401e12f456253224224d85f1743e" type="original">
        <fileParams fileName="pexels-chevanon-photography-1108099.jpg" filePath="/home/gilles/Images/" fileHash="325a401e12f456253224224d85f1743e" fileSize="1914937" creationDate="2021-02-26T09:44:41"/>
    </file>
    <file uuid="7f9cf8e79a17e72680eac8f58e4c90f8325a401e12f456253224224d85f1743e" type="original">
        <fileParams fileName="pexels-chevanon-photography-1108099.heic" filePath="/home/gilles/Pictures/" fileHash="dd395c407167a8666f640b5d82cebb79" fileSize="4725691" creationDate="2022-09-04T09:23:44"/>
    </file>
    <filter filterName="GMic-Qt" filterDisplayName="" filterVersion="1" filterCategory="reproducible" branch="true">
        <params>
            <param name="Command" value="fx_blackandwhite 0.299,0,0.587,0,0.114,0,0,0,0,0,0,0,0,0,2,0,0,0,16,4,0,0,0,50,50"/>
            <param name="FilterName" value="Black &amp; White"/>
            <param name="FilterPath" value="/Black &amp; White/Black &amp; White"/>
            <param name="GmicQtVersion" value="3.1.6"/>
            <param name="InputMode" value="1"/>
            <param name="OutputMode" value="0"/>
        </params>
    </filter>
</history>

Xmp.digiKam.ImageUniqueID                    XmpText    64  6a7c512b230c4a206def2e039268a43fdd395c407167a8666f640b5d82cebb79
Xmp.tiff.ImageWidth                          XmpText     4  5184
Xmp.tiff.ImageLength                         XmpText     4  3888
Xmp.tiff.Software                            XmpText    17  digiKam-8.0.0-git
Xmp.exif.PixelXDimension                     XmpText     4  5184
Xmp.exif.PixelYDimension                     XmpText     4  3888
Xmp.xmp.CreatorTool                          XmpText    17  digiKam-8.0.0-git

Gilles Caulier