From dcc00b40d15974fe8d4b3e1041b0d1d541b5091b Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sat, 14 Mar 2020 21:02:20 +0100 Subject: [PATCH] metadata: do not include makernotes on export Fixes #31 (cherry picked from commit 3a8d8ece897eb4df61887160a30722bd07a77174) --- rtengine/metadata.cc | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/rtengine/metadata.cc b/rtengine/metadata.cc index 40cdffdb1..e4d955738 100644 --- a/rtengine/metadata.cc +++ b/rtengine/metadata.cc @@ -229,7 +229,8 @@ void Exiv2Metadata::remove_unwanted(Exiv2::Image *dst) const static const std::vector keys = { "Exif.Image.Orientation", "Exif.Image2.JPEGInterchangeFormat", - "Exif.Image2.JPEGInterchangeFormatLength" + "Exif.Image2.JPEGInterchangeFormatLength", + "Exif.Photo.MakerNote" }; for (auto &k : keys) { auto it = dst->exifData().findKey(Exiv2::ExifKey(k)); @@ -237,6 +238,26 @@ void Exiv2Metadata::remove_unwanted(Exiv2::Image *dst) const dst->exifData().erase(it); } } + static const std::vector patterns = { + "Exif.Image.", + "Exif.Photo.", + "Exif.GPSInfo." + }; + for (auto it = dst->exifData().begin(); it != dst->exifData().end(); ) { + bool found = false; + for (auto &pp : patterns) { + if (it->key().find(pp) == 0) { + found = true; + break; + } + } + if (!found) { + it = dst->exifData().erase(it); + } else { + ++it; + } + } + Exiv2::ExifThumb thumb(dst->exifData()); thumb.erase(); }