From 1a0b96b22380b36a6c6496ab183d956c7479524b Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 4 Jul 2016 19:28:04 +0200 Subject: [PATCH] Remove some top level tags when saving to uncompressed tiff, also simplified generation of 'Software' tag --- rtengine/imageio.cc | 4 +--- rtexif/rtexif.cc | 11 ++++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index 93c650afe..8d436ad6c 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -1347,9 +1347,7 @@ int ImageIO::saveTIFF (Glib::ustring fname, int bps, bool uncompressed) } - Glib::ustring rtVersion("RawTherapee "); - rtVersion += VERSION; - TIFFSetField (out, TIFFTAG_SOFTWARE, rtVersion.c_str()); + TIFFSetField (out, TIFFTAG_SOFTWARE, "RawTherapee " VERSION); TIFFSetField (out, TIFFTAG_IMAGEWIDTH, width); TIFFSetField (out, TIFFTAG_IMAGELENGTH, height); TIFFSetField (out, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index a46a37952..1cdc2d89c 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -2792,8 +2792,6 @@ TagDirectory* ExifManager::parseTIFF (FILE* f, bool skipIgnored) std::vector ExifManager::getDefaultTIFFTags (TagDirectory* forthis) { - Glib::ustring rtVersion("RawTherapee "); - rtVersion += VERSION; std::vector defTags; @@ -2803,7 +2801,7 @@ std::vector ExifManager::getDefaultTIFFTags (TagDirectory* forthis) defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "XResolution"), 300, RATIONAL)); defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "YResolution"), 300, RATIONAL)); defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "ResolutionUnit"), 2, SHORT)); - defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "Software"), rtVersion.c_str())); + defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "Software"), "RawTherapee " VERSION)); defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "Orientation"), 1, SHORT)); defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "SamplesPerPixel"), 3, SHORT)); defTags.push_back (new Tag (forthis, lookupAttrib(ifdAttribs, "BitsPerSample"), 8, SHORT)); @@ -2882,6 +2880,13 @@ int ExifManager::createTIFFHeader (const TagDirectory* root, const rtengine::pro if (root) { cl = (const_cast(root))->clone (NULL); + // remove some unknown top level tags which produce warnings when opening a tiff + Tag *removeTag = cl->getTag(0x9003); + if(removeTag) + removeTag->setKeep(false); + removeTag = cl->getTag(0x9211); + if(removeTag) + removeTag->setKeep(false); } else { cl = new TagDirectory (NULL, ifdAttribs, HOSTORDER); }