Created attachment 94950 [details] Implementation of Lut3D (created by git format-patch) Lut3D tables can be used to change image colors in much more powerful way than curves. I created an initial implementation based on android code, including filters from there. In future this could be used to support also Photoshop LUTs etc. The patch is attached, should apply on v4.13.0. PS: For the future, it'd be best to share the code with GIMP folks or something...
Thanks to share this huge patch. Very interesting feature. Unfortunaltly, this patch canot be applied to next 4.14.0 for KDE4 planed this evening. As 4.14.0 will be the last one for KDE4, so, this patch can be only applied for next digiKam 5.0.0 for KF5. I will review your code, port to Qt5 and test... Gilles Caulier
Ah, that's a pity :-( Anyhow, thanks for the porting. The real functionality is in fact some 200-300 lines, but all the interface stuff around is a bit demanding for a newcomer (though in the end quite nice)... So I had the patch working for a few weeks now (seems stable), but had to rework it for batch conversion support (=>separate container, settings)...
Ah yes, please adjust your code to support BQM. It's very important to see all image editor tool available in BQM. We plan to implement the feature to apply a set of adjustement done to an images to another one (workflow) Gilles Caulier
If you mean that it should be visible in the 'Base Tools' tab of BQM, then that's already done (works similar to BW conversion)... Only thing I had problem with was the update of the editor menu. digikamimageplugin_color_ui.rc is updated (incl. version bump), but for some reason I had to modify the file in ~/.kde/... manually. Maybe I just broke it during development, though...
The menu update problem is due to increase the version ID of XML file of image editor. But in all case, this problem will disapear in Qt5 version, because the editor plugin structure will be removed, in favor to embed all tools directly in editor code. The goal is to reduce all KDE fingerprint in digiKam to improve portability outside Linux. In fact editor plugin structure have no sense, since plugins are not shared with others applications. Gilles Caulier
Created attachment 95982 [details] digiKam5-Lut3D-1.patch I find this feature very interesting. I have the patch in a first version for testing to current digiKam5 ported and somewhat polished. Maik
Maik, If the code can be compiled against git/master, as we are in beta stage until sprint 2016, it's fine to apply it to repository. We have plenty of time to tune code until final 5.0.0 Gilles
Git commit f754229d9137b9801b2d41adb050f3bd11c98637 by Maik Qualmann. Committed on 11/12/2015 at 07:06. Pushed by mqualmann into branch 'master'. apply patch #95982 from Andrej Krutak to add Lut3D tool in the editor and BQM FIXED-IN: 5.0.0 M +2 -1 NEWS M +1 -0 data/CMakeLists.txt A +7 -0 data/filters/CMakeLists.txt A +28 -0 data/filters/lut3d/CMakeLists.txt A +- -- data/filters/lut3d/bleach.png A +- -- data/filters/lut3d/blue_crush.png A +- -- data/filters/lut3d/bw_contrast.png A +- -- data/filters/lut3d/instant.png A +- -- data/filters/lut3d/original.png A +- -- data/filters/lut3d/punch.png A +- -- data/filters/lut3d/vintage.png A +- -- data/filters/lut3d/washout.png A +- -- data/filters/lut3d/washout_color.png A +- -- data/filters/lut3d/x_process.png M +1 -0 imageplugins/color/CMakeLists.txt M +2 -1 imageplugins/color/digikamimageplugin_color_ui.rc M +14 -0 imageplugins/color/imageplugin_color.cpp M +1 -0 imageplugins/color/imageplugin_color.h A +200 -0 imageplugins/color/lut3dtool.cpp [License: GPL (v2+)] A +75 -0 imageplugins/color/lut3dtool.h [License: GPL (v2+)] M +3 -0 libs/dimg/CMakeLists.txt A +63 -0 libs/dimg/filters/lut3d/lut3dcontainer.cpp [License: GPL (v2+)] A +61 -0 libs/dimg/filters/lut3d/lut3dcontainer.h [License: GPL (v2+)] A +321 -0 libs/dimg/filters/lut3d/lut3dfilter.cpp [License: GPL (v2+)] A +92 -0 libs/dimg/filters/lut3d/lut3dfilter.h [License: GPL (v2+)] A +235 -0 libs/dimg/filters/lut3d/lut3dsettings.cpp [License: GPL (v2+)] A +76 -0 libs/dimg/filters/lut3d/lut3dsettings.h [License: GPL (v2+)] M +1 -0 utilities/queuemanager/CMakeLists.txt A +126 -0 utilities/queuemanager/basetools/color/lut3d.cpp [License: GPL (v2+)] A +72 -0 utilities/queuemanager/basetools/color/lut3d.h [License: GPL (v2+)] M +2 -0 utilities/queuemanager/manager/batchtoolsmanager.cpp http://commits.kde.org/digikam/f754229d9137b9801b2d41adb050f3bd11c98637
Maik, It miss versioning support with this 3D Lut filter. It's used by editor and BQM to register filters order/parameters used while to apply on image. These settings is pushed in XMP metadata. Look like core/libs/dimg/filters/dimgfiltermanager.cpp do not register 3DLut. In filter implementation readParameters() is not implemented... Gilles
add versioning support for the 3D Lut filter http://commits.kde.org/digikam/39f4312033ebbd3414dfc8484f2b2e3e6e6cfb6f
Git commit 537d7132117c804acc502f898ea95e588c20b20d by Maik Qualmann. Committed on 15/12/2015 at 06:58. Pushed by mqualmann into branch 'master'. move Lut3D filter to the ColorFX filters M +0 -1 imageplugins/color/CMakeLists.txt M +1 -2 imageplugins/color/digikamimageplugin_color_ui.rc M +0 -14 imageplugins/color/imageplugin_color.cpp M +0 -1 imageplugins/color/imageplugin_color.h D +0 -201 imageplugins/color/lut3dtool.cpp D +0 -75 imageplugins/color/lut3dtool.h M +11 -1 imageplugins/filters/colorfxtool.cpp M +1 -0 imageplugins/filters/colorfxtool.h M +0 -3 libs/dimg/CMakeLists.txt M +0 -3 libs/dimg/filters/dimgfiltermanager.cpp M +270 -4 libs/dimg/filters/fx/colorfxfilter.cpp M +15 -8 libs/dimg/filters/fx/colorfxfilter.h M +171 -27 libs/dimg/filters/fx/colorfxsettings.cpp M +5 -1 libs/dimg/filters/fx/colorfxsettings.h D +0 -64 libs/dimg/filters/lut3d/lut3dcontainer.cpp D +0 -60 libs/dimg/filters/lut3d/lut3dcontainer.h D +0 -324 libs/dimg/filters/lut3d/lut3dfilter.cpp D +0 -94 libs/dimg/filters/lut3d/lut3dfilter.h D +0 -234 libs/dimg/filters/lut3d/lut3dsettings.cpp D +0 -77 libs/dimg/filters/lut3d/lut3dsettings.h M +0 -1 utilities/queuemanager/CMakeLists.txt D +0 -126 utilities/queuemanager/basetools/color/lut3d.cpp D +0 -72 utilities/queuemanager/basetools/color/lut3d.h M +11 -0 utilities/queuemanager/basetools/filters/colorfx.cpp M +0 -2 utilities/queuemanager/manager/batchtoolsmanager.cpp http://commits.kde.org/digikam/537d7132117c804acc502f898ea95e588c20b20d