Summary: | digiKam doesn't show Gimp 2.9 xcf images [patch] | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Alex6 <alex.premie> |
Component: | Plugin-DImg-QImage | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | CC: | caulier.gilles, kdelibs-bugs, leoutation |
Priority: | NOR | ||
Version: | 6.0.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/digikam/86a40546894c7b053ab3aad85a11a0c709e60220 | Version Fixed In: | 6.1.0 |
Sentry Crash Report: | |||
Attachments: | ImageMagick support patch version 1 |
Description
Alex6
2016-03-21 07:26:47 UTC
Thumbnails support in KIPI tools must be implemented in KIPI host application and shared through libkipi. Gilles Caulier With xcf (from gimp 2.9) file: in gwenview: thumbnail visible, "loading image failed" if I try to view it. in kphotoalbum: white thumbnail, nothing happens if I try to view it. No problem with xcf from gimp 2.8, nor with current image files. Not understood the above comment (but thanks for the quick reply) Not understood the above comment (but thanks for the quick reply)... I am only a simple user, compiling gimp 2.9 is the top of my competence. When will gimp 2.9 xcf files be usable in gwenview / kphotoalbum? No. This bug is not valid. The kipi host application must genreate thumbnail for XCF and pâss it through libkipi (dixit the link to API). So the problem is in kipi host applications. Gilles Caulier *** This bug has been marked as a duplicate of bug 126072 *** It's not a duplicate. New GIMP format has internal compression. The bug referenced in comment #6 mentions compressing the .xcf file. But this one is. *** This bug has been marked as a duplicate of bug 360821 *** I written a little bit of code to be able to load image from Image Magck to QImage. No difficulty : https://cgit.kde.org/scratch/cgilles/cgilles.git/tree/qmagickloader Now i will provide a patch to DigiKam::DImgLoader as fail back when QImage cannot do the job in native. I will set the dependency to ImageMagick::Magick++ API as optional. Gilles Caulier @gilles Good news. I'll test this patch as soon as it is available in git. Created attachment 119286 [details]
ImageMagick support patch version 1
Patch version 1 to add ImageMagick support in Qt Image loader as fail back codecs. This code only compile with Magick++ API < 7.0. Code must be ported to new IM API.
Note : IM < 7.0 do not support XCF format from Gimp >= 2.9. Only IM >= 7.0 can do it.
Gilles Caulier
Git commit 86a40546894c7b053ab3aad85a11a0c709e60220 by Gilles Caulier. Committed on 08/04/2019 at 15:18. Pushed by cgilles into branch 'master'. Add ImageMagick codecs support as QImage fail-back image loader to be able to render thumbnails and load image in editor with extra image format as HEIC, FITS, JPEG-XR, XCF. For the moment, this will support image loading in this formats. Later we can plan to add writting support if ImageMagick codecs can do it. Related: bug 385726, bug 393408 FIXED-IN: 6.1.0 M +1 -0 Mainpage.dox M +1 -0 NEWS M +8 -1 core/CMakeLists.txt M +4 -0 core/app/DigikamCoreTarget.cmake M +3 -0 core/app/utils/digikam_config.h.cmake.in M +10 -0 core/libs/dialogs/libsinfodlg.cpp M +2 -1 core/libs/dimg/loaders/README M +58 -2 core/libs/dimg/loaders/qimageloader.cpp M +5 -0 core/libs/dimg/loaders/qimageloader.h https://commits.kde.org/digikam/86a40546894c7b053ab3aad85a11a0c709e60220 'Libgomp', gnu openmp, dependency is needed. Is the same that https://openmp.llvm.org/ ? https://openmp.llvm.org/ => openmp for clang https://gcc.gnu.org/onlinedocs/libgomp/Enabling-OpenMP.html => openmp for GCC openmp is a norm for compiler to compute operations in parallel. MSVC for ex support also openmp. Gilles Caulier I discover that libgomp belongs to 'gcc-libs' Arch package gcc-libs 8.2.1+20181127-1 File List https://www.archlinux.org/packages/core/x86_64/gcc-libs/files/ /usr/lib/libgomp.so /usr/lib/libgomp.so.1 /usr/lib/libgomp.so.1.0.0 /usr/lib/libgomp.spec /usr/lib32/libgomp.spec /usr/share/info/libgomp.info.gz I got error when building digikam-git r42713 https://pastebin.com/x8cRGLLz [ 53%] Built target digikamfacesenginedatabase [ 53%] [32mBuilding CXX object core/utilities/facemanagement/CMakeFiles/facemanagement_src.dir/scanstatefilter.cpp.o[0m /usr/bin/ld: ../libs/dimg/CMakeFiles/dimg_src.dir/loaders/qimageloader.cpp.o: in function `Digikam::QImageLoader::loadWithImageMagick(QString const&, QImage&)': qimageloader.cpp:(.text+0x74e): undefined reference to `Magick::Image::columns() const' /usr/bin/ld: qimageloader.cpp:(.text+0x778): undefined reference to `Magick::Image::rows() const' /usr/bin/ld: qimageloader.cpp:(.text+0xa27): undefined reference to `Magick::Image::rows() const' /usr/bin/ld: qimageloader.cpp:(.text+0xa33): undefined reference to `Magick::Image::columns() const' collect2: error: ld returned 1 exit status make[2]: *** [core/app/CMakeFiles/digikamcore.dir/build.make:1277: core/app/libdigikamcore.so.6.1.0] Error 1 make[1]: *** [CMakeFiles/Makefile2:6716: core/app/CMakeFiles/digikamcore.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... => linking error with libmagick++. I cannot reproduce here... Which operating system exactly ? Gilles Caulier Archlinux system https://www.archlinux.org/packages/extra/x86_64/libmagick/ https://www.archlinux.org/packages/extra/x86_64/imagemagick/ I commited a patch about the ImageMagick detection with Cmake. Not sure if this will fix your problem. Gilles Cauleir New error before compilation https://pastebin.com/FGbRCjyq Just fixed... Try again Gilles Caulier New build error r42717 https://pastebin.com/ALFHH8Ct [01m[K/home/fre/ARCH-AUR/digikam/digikam-git/src/digikam/core/libs/dimg/loaders/qimageloader.cpp:30:13:[m[K [01;31m[Kfatal error: [m[KMagick++.h: No such file or directory # include [01;31m[K<Magick++.h>[m[K [01;31m[K^~~~~~~~~~~~[m[K [ 4%] [32mBuilding CXX object core/libs/dngwriter/CMakeFiles/libdng_src.dir/extra/dng_sdk/dng_xy_coord.cpp.o[0m compilation terminated. It miss a hearder file on your computer from ImageMagick ? Gilles Caulier Ok, i can reproduce while AppImage build process. It must be fixed now. Gilles Caulier New magick error r42724 https://pastebin.com/ZuH4uzTe Strange this error do not appear under Centos6 while AppImage compilation. I just get 100% of compiling stage. AppImage bundle will be available in few minutes. Gilles Caulier New AppImage with ImageMagick codecs support : digikam-6.1.0-git-20190409T174259-qtwebkit-x86-64.appimage Gilles Caulier It works for you. Great! About my issue: I don't know if it's useful r42724 CMakeError.log Determining if the pthread_create exist failed with the following output: Change Dir: /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make cmTC_07239/fast /usr/bin/make -f CMakeFiles/cmTC_07239.dir/build.make CMakeFiles/cmTC_07239.dir/build make[1]: Entering directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_07239.dir/CheckSymbolExists.c.o /usr/bin/cc -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -o CMakeFiles/cmTC_07239.dir/CheckSymbolExists.c.o -c /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c Linking C executable cmTC_07239 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_07239.dir/link.txt --verbose=1 /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -rdynamic CMakeFiles/cmTC_07239.dir/CheckSymbolExists.c.o -o cmTC_07239 /usr/bin/ld: CMakeFiles/cmTC_07239.dir/CheckSymbolExists.c.o: in function `main': CheckSymbolExists.c:(.text.startup+0x3): undefined reference to `pthread_create' collect2: error: ld returned 1 exit status make[1]: *** [CMakeFiles/cmTC_07239.dir/build.make:87: cmTC_07239] Error 1 make[1]: Leaving directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' make: *** [Makefile:121: cmTC_07239/fast] Error 2 File /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c: /* */ #include <pthread.h> int main(int argc, char** argv) { (void)argv; #ifndef pthread_create return ((int*)(&pthread_create))[argc]; #else (void)argc; return 0; #endif } Determining if the function pthread_create exists in the pthreads failed with the following output: Change Dir: /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make cmTC_ba848/fast /usr/bin/make -f CMakeFiles/cmTC_ba848.dir/build.make CMakeFiles/cmTC_ba848.dir/build make[1]: Entering directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_ba848.dir/CheckFunctionExists.c.o /usr/bin/cc -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_ba848.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.14/Modules/CheckFunctionExists.c Linking C executable cmTC_ba848 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ba848.dir/link.txt --verbose=1 /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -std=iso9899:1990 -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -DCHECK_FUNCTION_EXISTS=pthread_create -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -rdynamic CMakeFiles/cmTC_ba848.dir/CheckFunctionExists.c.o -o cmTC_ba848 -lpthreads /usr/bin/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status make[1]: *** [CMakeFiles/cmTC_ba848.dir/build.make:87: cmTC_ba848] Error 1 make[1]: Leaving directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' make: *** [Makefile:121: cmTC_ba848/fast] Error 2 Performing C++ SOURCE FILE Test HAVE_LQR_0_4 failed with the following output: Change Dir: /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make cmTC_d5f37/fast /usr/bin/make -f CMakeFiles/cmTC_d5f37.dir/build.make CMakeFiles/cmTC_d5f37.dir/build make[1]: Entering directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_d5f37.dir/src.cxx.o /usr/bin/c++ -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -pedantic -Wsuggest-override -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -pedantic -Wsuggest-override -std=c++0x -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -DHAVE_LQR_0_4 -o CMakeFiles/cmTC_d5f37.dir/src.cxx.o -c /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp/src.cxx /home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp/src.cxx:2:14: fatal error: lqr.h: No such file or directory #include <lqr.h> ^~~~~~~ compilation terminated. make[1]: *** [CMakeFiles/cmTC_d5f37.dir/build.make:66: CMakeFiles/cmTC_d5f37.dir/src.cxx.o] Error 1 make[1]: Leaving directory '/home/fre/ARCH-AUR/digikam/digikam-git/src/build/CMakeFiles/CMakeTmp' make: *** [Makefile:121: cmTC_d5f37/fast] Error 2 Source file was: #include <lqr.h> int main() { LqrImageType t = LQR_RGB_IMAGE; return 0; } I tried to build digikam r42726 with imagemagick git version [for those who would be interested https://aur.archlinux.org/packages/imagemagick-full-git/] I got exactly same error: `Digikam::QImageLoader::loadWithImageMagick(QString const&, QImage&)': qimageloader.cpp:(.text+0x74e): undefined reference to `Magick::Image::columns() const' /usr/bin/ld: qimageloader.cpp:(.text+0x778): undefined reference to `Magick::Image::rows() const' /usr/bin/ld: qimageloader.cpp:(.text+0xa27): undefined reference to `Magick::Image::rows() const' /usr/bin/ld: qimageloader.cpp:(.text+0xa33): undefined reference to `Magick::Image::columns() const' collect2: error: ld returned 1 exit status I don't understand why... Did i miss In file included from [01m[K/usr/include/ImageMagick-7/Magick++/Include.h:14[m[K, from [01m[K/usr/include/ImageMagick-7/Magick++.h:10[m[K, from [01m[K/home/fre/ARCH-AUR/digikam/digikam-git/src/digikam/core/libs/dialogs/libsinfodlg.cpp:56[m[K: [01m[K/usr/include/ImageMagick-7/MagickCore/magick-config.h:29:3:[m[K [01;35m[Kwarning: [m[K#warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" [[01;35m[K-Wcpp[m[K] # [01;35m[Kwarning[m[K "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" [01;35m[K^~~~~~~[m[K [01m[K/usr/include/ImageMagick-7/MagickCore/magick-config.h:30:3:[m[K [01;35m[Kwarning: [m[K#warning "this is an obsolete behavior please fix your makefile" [[01;35m[K-Wcpp[m[K] # [01;35m[Kwarning[m[K "this is an obsolete behavior please fix your makefile" [01;35m[K^~~~~~~[m[K [01m[K/usr/include/ImageMagick-7/MagickCore/magick-config.h:52:3:[m[K [01;35m[Kwarning: [m[K#warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" [[01;35m[K-Wcpp[m[K] # [01;35m[Kwarning[m[K "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" [01;35m[K^~~~~~~[m[K [01m[K/usr/include/ImageMagick-7/MagickCore/magick-config.h:53:3:[m[K [01;35m[Kwarning: [m[K#warning "this is an obsolete behavior please fix yours makefile" [[01;35m[K-Wcpp[m[K] # [01;35m[Kwarning[m[K "this is an obsolete behavior please fix yours makefile" Impossible to delete previous wrong comment! Whole build here https://pastebin.com/VGak6pVf From your trace, at configuration time, i found the problem : -- ImageMagick_FOUND: TRUE -- ImageMagick_VERSION_STRING: 7.0.8-39 -- ImageMagick_EXECUTABLE_DIR: /usr/bin -- ImageMagick_INCLUDE_DIRS: /usr/include/ImageMagick-7 -- ImageMagick_LIBRARIES: /usr/lib/libMagick++-6.Q16HDRI.so -- ImageMagick_Magick++_INCLUDE_DIRS: /usr/include/ImageMagick-7 -- ImageMagick_Magick++_LIBRARIES: The last value is empty, and it's abnormal. Typically, the IM detection processed by cmake is delegate by the package config file installed with IM. It sound like this file is probably not filled properly. Gilles Caulier I solved compilation issue: Libmagick6 was installed on my system (emacs dependency). I uninstalled it then i could compile successfully digikam. Strange... But, digikam-git doesn't find databases (dk6.0 works fine with same conf) Log r42728 here https://pastebin.com/mA5dhqKr It's simple : digikam.dbengine: Error while opening the database. Error details [ QSqlError("1045", "QMYSQL: Unable to connect", "Access denied for user 'dkfre'@'localhost' (using password: YES)") ] There is a problem to be logged on the remote Mysql server. The Mysql Qt plugin is used internally to delegate the low level communication with the database. Perhaps something has changed in this plugin from Qt. Try to reconfigure the connexion in digiKam. Giles Caulier Digikam 6.1 beta works now but it is unable to display xcf files with layers. Only Xcf without layers are displayed normally. Same behaviour with Imagemagick command 'display file.xcf'. Well, in this case, this must be reported to ImageMagick to fix the XCF codec. Gilles Caulier I reported ImageMagick issue here Unable to display gimp 2.10 multi-layers .xcf file https://github.com/ImageMagick/ImageMagick/issues/1544 ... and i commented this entry. Wait and see... Gilles Caulier Maybe useful. Here some links to gimp 2.10 edited .xcf images tests with displaying problems in last digikam-git using IM This one is not displayed at all in DK https://framapic.org/gallery#9CmymK2l63iG/1PeSejcoAS8M.xcf These b&w pictures are displayed blue in DK https://framapic.org/gallery#nYFHlPTQFb9L/CQUG12ErEslf.xcf https://framapic.org/gallery#q9c0wbT1achp/KZIunjlLMGkG.xcf https://framapic.org/gallery#3dsHtZ0Y6oht/HHoO3dUMrUD5.xcf As it's IM which extract image data, these links must be reported to IM bugzilla. Gilles Caulier |