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

@@ -780,6 +780,27 @@ describe('Resize dimensions', function () {
assert.strictEqual(info.height, 1);
});
it('Skip JPEG shrink-on-load for known libjpeg rounding errors', async () => {
const input = await sharp({
create: {
width: 1000,
height: 667,
channels: 3,
background: 'red'
}
})
.jpeg()
.toBuffer();
const output = await sharp(input)
.resize({ width: 500 })
.toBuffer();
const { width, height } = await sharp(output).metadata();
assert.strictEqual(width, 500);
assert.strictEqual(height, 334);
});
it('unknown kernel throws', function () {
assert.throws(function () {
sharp().resize(null, null, { kernel: 'unknown' });