summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
}