Skip JPEG shrink-on-load for known rounding errors #3066

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
This commit is contained in:
Lovell Fuller
2022-02-03 21:18:51 +00:00
parent 83bb6a4554
commit 2b01951306
3 changed files with 30 additions and 0 deletions

View File

@@ -193,6 +193,10 @@ class PipelineWorker : public Napi::AsyncWorker {
} else if (shrink >= 2 * factor) {
jpegShrinkOnLoad = 2;
}
// Skip shrink-on-load for known libjpeg rounding errors
if (jpegShrinkOnLoad > 1 && shrink == jpegShrinkOnLoad) {
jpegShrinkOnLoad /= 2;
}
} else if (inputImageType == sharp::ImageType::WEBP ||
inputImageType == sharp::ImageType::SVG ||
inputImageType == sharp::ImageType::PDF) {