Remove some top level tags when saving to uncompressed tiff, also simplified generation of 'Software' tag

This commit is contained in:
heckflosse
2016-07-04 19:28:04 +02:00
parent 90c7407c90
commit 1a0b96b223
2 changed files with 9 additions and 6 deletions

View File

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

View File

@@ -2792,8 +2792,6 @@ TagDirectory* ExifManager::parseTIFF (FILE* f, bool skipIgnored)
std::vector<Tag*> ExifManager::getDefaultTIFFTags (TagDirectory* forthis)
{
Glib::ustring rtVersion("RawTherapee ");
rtVersion += VERSION;
std::vector<Tag*> defTags;
@@ -2803,7 +2801,7 @@ std::vector<Tag*> 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<TagDirectory*>(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);
}