summaryrefslogtreecommitdiff
path: root/src/ImageMetaData.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/ImageMetaData.cxx')
-rw-r--r--src/ImageMetaData.cxx47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/ImageMetaData.cxx b/src/ImageMetaData.cxx
index b54da74..fa334aa 100644
--- a/src/ImageMetaData.cxx
+++ b/src/ImageMetaData.cxx
@@ -17,8 +17,7 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <exiv2/image.hpp>
-#include <exiv2/exif.hpp>
+#include <exiv2/exiv2.hpp>
#include "../config.h"
#include "ImageMetaData.H"
@@ -102,12 +101,16 @@ exifSetCoordinate(double *destVal, Exiv2::ExifData *exifData, const char *name)
int
ImageMetaData::load_image_exif(char *name) {
- Exiv2::Image::AutoPtr image;
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image;
+#else
+ Exiv2::Image::AutoPtr image;
+#endif
try {
image = Exiv2::ImageFactory::open(name);
image->readMetadata();
- } catch (Exiv2::Error error) {
+ } catch (const Exiv2::Error &error) {
fprintf(stderr, "Error reading metadata\n");
return 1;
}
@@ -134,19 +137,19 @@ ImageMetaData::load_image_exif(char *name) {
_model = strdup(pos->toString().c_str());
}
- if (isnan(_focal_length))
+ if (std::isnan(_focal_length))
exifSetValue(&_focal_length, &exifData, "Exif.Photo.FocalLength");
- if (isnan(_focal_length_35mm))
+ if (std::isnan(_focal_length_35mm))
exifSetValue(&_focal_length_35mm, &exifData, "Exif.Photo.FocalLengthIn35mmFilm");
- if (isnan(_longitude))
+ if (std::isnan(_longitude))
exifSetCoordinate(&_longitude, &exifData, "Exif.GPSInfo.GPSLongitude");
- if (isnan(_latitude))
+ if (std::isnan(_latitude))
exifSetCoordinate(&_latitude, &exifData, "Exif.GPSInfo.GPSLatitude");
- if (isnan(_height))
+ if (std::isnan(_height))
exifSetValue(&_height, &exifData, "Exif.GPSInfo.GPSAltitude");
return 0;
@@ -170,15 +173,19 @@ ImageMetaData::load_image_jpgcom(char *name) {
double lo, la, he, dir, ni, ti, fr, k0, k1, x0 = 0.0;
int pt = 0;
int n, ret = 1;
- Exiv2::Image::AutoPtr image;
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image;
+#else
+ Exiv2::Image::AutoPtr image;
+#endif
- try {
- image = Exiv2::ImageFactory::open(name);
- image->readMetadata();
- } catch (Exiv2::Error error) {
- fprintf(stderr, "Error reading metadata\n");
- return 1;
- }
+ try {
+ image = Exiv2::ImageFactory::open(name);
+ image->readMetadata();
+ } catch (const Exiv2::Error &error) {
+ fprintf(stderr, "Error reading metadata\n");
+ return 1;
+ }
const char *com = image->comment().c_str();
@@ -245,7 +252,11 @@ ImageMetaData::save_image_jpgcom(char *in_img, char *out_img) {
close(in_fd);
+#if EXIV2_TEST_VERSION(0,28,0)
+ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(tmpname);
+#else
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(tmpname);
+#endif
if (!image.get())
err++;
@@ -267,7 +278,7 @@ ImageMetaData::save_image_jpgcom(char *in_img, char *out_img) {
try {
image->writeMetadata();
- } catch (Exiv2::Error error) {
+ } catch (const Exiv2::Error &error) {
fprintf(stderr, "Error writing metadata\n");
err++;
}