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());