Switch to libvips' resize, make fastShrinkOnLoad optional (#977)

This commit is contained in:
Jarda Kotěšovec
2017-10-10 20:03:36 +02:00
committed by Lovell Fuller
parent ebc2a741f6
commit d0f66c3734
12 changed files with 67 additions and 95 deletions

View File

@@ -98,6 +98,7 @@ describe('Partial image extraction', function () {
sharp(fixtures.inputPngWithGreyAlpha)
.extract({ left: 20, top: 10, width: 380, height: 280 })
.rotate(90)
.jpeg()
.toBuffer(function (err, data, info) {
if (err) throw err;
assert.strictEqual(280, info.width);

View File

@@ -48,11 +48,12 @@ describe('Gamma correction', function () {
sharp(fixtures.inputPngOverlayLayer1)
.resize(320)
.gamma()
.jpeg()
.toBuffer(function (err, data, info) {
if (err) throw err;
assert.strictEqual('png', info.format);
assert.strictEqual('jpeg', info.format);
assert.strictEqual(320, info.width);
fixtures.assertSimilar(fixtures.expected('gamma-alpha.jpg'), data, { threshold: 20 }, done);
fixtures.assertSimilar(fixtures.expected('gamma-alpha.jpg'), data, done);
});
});

View File

@@ -448,4 +448,34 @@ describe('Resize dimensions', function () {
});
});
});
it('fastShrinkOnLoad: false ensures image is not shifted', function (done) {
return sharp(fixtures.inputJpgCenteredImage)
.resize(9, 8, {
fastShrinkOnLoad: false,
centreSampling: true
})
.png()
.toBuffer(function (err, data, info) {
if (err) throw err;
assert.strictEqual(9, info.width);
assert.strictEqual(8, info.height);
// higher threshold makes it pass for both jpeg and jpeg-turbo libs
fixtures.assertSimilar(fixtures.expected('fast-shrink-on-load-false.png'), data, { threshold: 7 }, done);
});
});
it('fastShrinkOnLoad: true (default) might result in shifted image', function (done) {
return sharp(fixtures.inputJpgCenteredImage)
.resize(9, 8, {
centreSampling: true
})
.png()
.toBuffer(function (err, data, info) {
if (err) throw err;
assert.strictEqual(9, info.width);
assert.strictEqual(8, info.height);
fixtures.assertSimilar(fixtures.expected('fast-shrink-on-load-true.png'), data, done);
});
});
});