From ba79d8b7f06e85f9b908bb0fa5f9ee3d7ea71f11 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Wed, 20 Jan 2021 20:59:08 +0100 Subject: [PATCH] (hopefully) better metadata formatting (cherry picked from commit 89be8ee8e71b1d56f5c6ce7ce4068ab330e19d68) --- rtengine/imagedata.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index b4058e56e..d6b643bcd 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -766,10 +766,14 @@ void FramesData::fillBasicTags(Exiv2::ExifData &exif) const return; } set_exif(exif, "Exif.Photo.ISOSpeedRatings", getISOSpeed()); - set_exif(exif, "Exif.Photo.FNumber", Exiv2::DoubleValue(getFNumber())); - set_exif(exif, "Exif.Photo.ExposureTime", Exiv2::DoubleValue(getShutterSpeed())); - set_exif(exif, "Exif.Photo.FocalLength", Exiv2::DoubleValue(getFocalLen())); - set_exif(exif, "Exif.Photo.ExposureBiasValue", Exiv2::DoubleValue(getExpComp())); + set_exif(exif, "Exif.Photo.FNumber", Exiv2::URationalValue(Exiv2::URational(round(getFNumber() * 10), 10))); + auto s = shutterToString(getShutterSpeed()); + if (s.find('/') == std::string::npos) { + s += "/1"; + } + set_exif(exif, "Exif.Photo.ExposureTime", s); + set_exif(exif, "Exif.Photo.FocalLength", Exiv2::URationalValue(Exiv2::URational(getFocalLen() * 10, 10))); + set_exif(exif, "Exif.Photo.ExposureBiasValue", Exiv2::DoubleValue(round(getExpComp() * 100) / 100.0)); set_exif(exif, "Exif.Image.Make", getMake()); set_exif(exif, "Exif.Image.Model", getModel()); set_exif(exif, "Exif.Photo.LensModel", getLens());