Better handle thumbnail generation of extreme aspect ratio images (fixes #3794)

* Backport fix taken from ART
* Enforce minimal thumbnail size of 1x1 px in two places, prevents divison by zero and empty image generation
This commit is contained in:
Floessie
2020-10-25 18:24:30 +01:00
committed by GitHub
parent b4f68adb64
commit 1318935a87
11 changed files with 82 additions and 57 deletions

View File

@@ -400,6 +400,7 @@ void Options::setDefaults()
overwriteOutputFile = false; // if TRUE, existing output JPGs/PNGs are overwritten, instead of adding ..-1.jpg, -2.jpg etc.
theme = "RawTherapee";
maxThumbnailHeight = 250;
maxThumbnailWidth = 800;
maxCacheEntries = 20000;
thumbInterp = 1;
autoSuffix = true;
@@ -1019,6 +1020,10 @@ void Options::readFromFile(Glib::ustring fname)
maxThumbnailHeight = keyFile.get_integer("File Browser", "MaxPreviewHeight");
}
if (keyFile.has_key("File Browser", "MaxPreviewWidth")) {
maxThumbnailWidth = keyFile.get_integer("File Browser", "MaxPreviewWidth");
}
if (keyFile.has_key("File Browser", "MaxCacheEntries")) {
maxCacheEntries = keyFile.get_integer("File Browser", "MaxCacheEntries");
}
@@ -2114,6 +2119,7 @@ void Options::saveToFile(Glib::ustring fname)
keyFile.set_integer("File Browser", "ThumbnailSizeQueue", thumbSizeQueue);
keyFile.set_integer("File Browser", "SameThumbSize", sameThumbSize);
keyFile.set_integer("File Browser", "MaxPreviewHeight", maxThumbnailHeight);
keyFile.set_integer("File Browser", "MaxPreviewWidth", maxThumbnailWidth);
keyFile.set_integer("File Browser", "MaxCacheEntries", maxCacheEntries);
Glib::ArrayHandle<Glib::ustring> pext = parseExtensions;
keyFile.set_string_list("File Browser", "ParseExtensions", pext);