Summary: | EXIF orientation in images is not honored in KSlideshow | ||
---|---|---|---|
Product: | [Unmaintained] plasma4 | Reporter: | Daniel Mader <danielstefanmader+kde> |
Component: | desktop | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | asraniel, guillaume.benny |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Mandriva RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Patch against trunk based on Guillaume's but improved KEXIV2 detection |
Description
Daniel Mader
2010-03-21 23:07:29 UTC
I'm not sure if it's the right place to move this entry. Anyway, it's not digiKam problem. Gilles Caulier I'm not a KDE developer, but here's what I found and how to correct it. The problem is that KSlideShow does not check at all for EXIF orientation (Exif.Image.Orientation in exiv2). Fortunately, it's pretty easy to fix. Here's what I did with KDE 4.4.4, but I just checked and it should be the same for the latest version in subversion/git. Here's what I modified to correct this bug: ============================================================================= *** File: kdeartwork/kscreensaver/kdesavers/slideshow.cpp - Add the following include (at the top of the file): #include <libkexiv2/kexiv2.h> - Add the following lines at the end of the function kSlideShowSaver::loadNextImage(), for example after "if (!mImage.load()) {...}": KExiv2Iface::KExiv2 exiv(fname); exiv.rotateExifQImage(mImage, exiv.getImageOrientation()); *** File: kdeartwork/kscreensaver/kdesavers/CMakeLists.txt - Add kexiv2 to target_link_libraries of kslideshow.kss: target_link_libraries(kslideshow.kss ${KDE4_KIO_LIBS} m kscreensaver kexiv2) ============================================================================= I don't know how cmake really works so there might be other things to modify to detect libkexiv2. Also, the lines that where added in slideshow.cpp may have to be within "#if" if it's supposed to be an optional dependency. That's it. I did the modifications locally and I've tried it on about a hundred photos and it works flawlessly. could you please send this patch to a mailing list or on reviewboard.kde.org? This is not a plasma bug, but i'm not sure against which component to fill it, so if you send the patch to the right place, it will get fixed! thank you very much Created attachment 51914 [details]
Patch against trunk based on Guillaume's but improved KEXIV2 detection
SVN commit 1179036 by annma: allow exif rotation when libkexiv2 is present initial patch from Guillaume Benny thanks tsdgeop for the review will backport to 4.5 branch CCBUG=231599 M +11 -0 CMakeLists.txt M +9 -0 slideshow.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1179036 SVN commit 1179170 by annma: backport 1179036: allow exif rotation when libkexiv2 is present BUG=231599 M +11 -0 CMakeLists.txt M +8 -0 slideshow.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1179170 |