summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-07 07:47:22 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-07 07:47:22 +0000
commite238aa77b1fb3c2f55aef2ef2c91ce52166d2cc8 (patch)
tree234157bb7e4ecfbb6c3689e0d750d93a70139661
parentfccb0a3e5194aa3f1455c57b4e22b00c9f0e435d (diff)
downloadgwenview-e238aa77.tar.gz
gwenview-e238aa77.zip
EXIV2 patch
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/gwenview@1172409 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--src/imageutils/jpegcontent.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/imageutils/jpegcontent.cpp b/src/imageutils/jpegcontent.cpp
index 9c8efeb..d23d74f 100644
--- a/src/imageutils/jpegcontent.cpp
+++ b/src/imageutils/jpegcontent.cpp
@@ -47,6 +47,17 @@ extern "C" {
#include "imageutils/jpegcontent.h"
#include "imageutils/jpegerrormanager.h"
+// Make sure an EXIV2_TEST_VERSION macro exists:
+
+#ifdef EXIV2_VERSION
+# ifndef EXIV2_TEST_VERSION
+# define EXIV2_TEST_VERSION(major,minor,patch) \
+ ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
+# endif
+#else
+# define EXIV2_TEST_VERSION(major,minor,patch) (false)
+#endif
+
namespace ImageUtils {
const int INMEM_DST_DELTA=4096;
@@ -594,7 +605,12 @@ void JPEGContent::applyPendingTransformation() {
QImage JPEGContent::thumbnail() const {
QImage image;
if (!d->mExifData.empty()) {
+#if (EXIV2_TEST_VERSION(0,17,91))
+ Exiv2::ExifThumbC thumb(d->mExifData);
+ Exiv2::DataBuf const thumbnail = thumb.copy();
+#else
Exiv2::DataBuf thumbnail = d->mExifData.copyThumbnail();
+#endif
image.loadFromData(thumbnail.pData_, thumbnail.size_);
}
return image;
@@ -616,7 +632,12 @@ void JPEGContent::setThumbnail(const QImage& thumbnail) {
return;
}
+#if (EXIV2_TEST_VERSION(0,17,91))
+ Exiv2::ExifThumb thumb(d->mExifData);
+ thumb.setJpegThumbnail((unsigned char*)array.data(), array.size());
+#else
d->mExifData.setJpegThumbnail((unsigned char*)array.data(), array.size());
+#endif
}