Bug 347053

Summary: BQM: "batched' files" are different from manually processed files [patch]
Product: [Applications] digikam Reporter: Axel Krebs <axel.krebs>
Component: BatchQueueManager-WorkflowAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 4.9.0   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.10.0
Sentry Crash Report:
Attachments: BQMsaveImage.patch
BQMsaveImage2.patch
BQMsaveImage3.patch
BQMsaveImage4.patch

Description Axel Krebs 2015-05-02 12:13:03 UTC
BQM is a powerful tool, if working properly.

Over the time, I found, that manually processed filed differ seriously from the same files processed manually.



Reproducible: Always

Steps to Reproduce:
1. I us a sequence of tools to adjust selected pics of mine to a transportbale and worthy treated version of these. The sequence might be as follows:
- apply metadata (incl. copyright information)
- sizing
- extreact noise
- sharpening
- write "signature"
- save a "jpg"

2.
3. 

Actual Results:  
results differ from BQB to manually processed pics (same sequence of tools!!!)

Expected Results:  
a result should always be independent from the way it is achieved...
Comment 1 Maik Qualmann 2015-05-04 19:37:50 UTC
What is the difference exactly? Is the difference in the picture visible? I have now found that the file sizes are very different. BQM used for example not the settings for JPG compression and always uses the default value of 75. I will correct it.

Maik
Comment 2 Maik Qualmann 2015-05-05 18:16:34 UTC
Created attachment 92438 [details]
BQMsaveImage.patch

This patch uses now in BQM the settings for quality, compression, etc. when saving a JPEG, TIFF, PNG, JPEG2000 or PGF image.

Maik
Comment 3 caulier.gilles 2015-05-05 18:51:49 UTC
Maik,

I think it's patched at the wrong place.

Also calling KConfig & co here will be not thread safe (if i remember).

BQM queue global have settings passed from GUI to background processing. For ex, this settings take RAW processing settings from digiKam config to the queue. The same way must be used to pass JPEG/PNG/TIFF/etc. settings. And typically, this must be already done. If it doesn't work this is a bug with current implementation.

Gilles
Comment 4 Maik Qualmann 2015-05-05 20:20:39 UTC
Gilles,

yes, KConfig in threads is not safe. But I think the place to set the DImg attributes is right. It is the last point before the image is saved. By analogy with the RAW decoding settings I would implement it with the IOFileSettings container.

Maik
Comment 5 Maik Qualmann 2015-05-07 10:42:23 UTC
Created attachment 92475 [details]
BQMsaveImage2.patch

New patch to set up the digiKam settings for saving. The conversion tools (convert2jpg) use their settings. A new tab in the queue settings for saving would also possible.

Maik
Comment 6 caulier.gilles 2015-05-07 12:02:32 UTC
The patch look good for me.

A new iofilesettings panel can be add to BQM Queue settings. This imply to store/restore these settings to/from XML queue file if user decide to save queue configuration.

Gilles
Comment 7 Maik Qualmann 2015-05-07 21:35:32 UTC
Created attachment 92486 [details]
BQMsaveImage3.patch

New patch for testing with queues settings for saving.

Maik
Comment 8 caulier.gilles 2015-05-08 09:53:14 UTC
patch work perfectly here..

Gilles
Comment 9 Maik Qualmann 2015-05-08 10:23:55 UTC
Created attachment 92491 [details]
BQMsaveImage4.patch

Only one value name in the queue XML file changed.

Maik
Comment 10 caulier.gilles 2015-05-08 10:25:39 UTC
fine to commit

Gilles
Comment 11 Maik Qualmann 2015-05-08 17:19:30 UTC
Git commit 5d3eff04851759ec6cc06038e5cc3e217856a7da by Maik Qualmann.
Committed on 08/05/2015 at 17:10.
Pushed by mqualmann into branch 'master'.

apply patch #92491 to added queue settings for saving images
FIXED-IN: 4.10.0

M  +2    -1    NEWS
M  +38   -0    utilities/queuemanager/manager/batchtool.cpp
M  +9    -0    utilities/queuemanager/manager/batchtool.h
M  +6    -0    utilities/queuemanager/manager/queuesettings.h
M  +1    -0    utilities/queuemanager/manager/task.cpp
M  +64   -0    utilities/queuemanager/manager/workflowmanager.cpp
M  +126  -2    utilities/queuemanager/views/queuesettingsview.cpp

http://commits.kde.org/digikam/5d3eff04851759ec6cc06038e5cc3e217856a7da
Comment 12 caulier.gilles 2015-05-08 20:51:59 UTC
Git commit 9dcb00b99bda74acbabeb0689420206bd081a615 by Gilles Caulier.
Committed on 08/05/2015 at 20:51.
Pushed by cgilles into branch 'frameworks'.

backport commit #5d3eff04851759ec6cc06038e5cc3e217856a7da from git/master to frameworks branch

M  +38   -0    utilities/queuemanager/manager/batchtool.cpp
M  +9    -0    utilities/queuemanager/manager/batchtool.h
M  +6    -0    utilities/queuemanager/manager/queuesettings.h
M  +1    -0    utilities/queuemanager/manager/task.cpp
M  +64   -0    utilities/queuemanager/manager/workflowmanager.cpp
M  +126  -2    utilities/queuemanager/views/queuesettingsview.cpp

http://commits.kde.org/digikam/9dcb00b99bda74acbabeb0689420206bd081a615