mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
Take page parameter into account when all frames are read (#3059)
This commit is contained in:
parent
1c3ba303ea
commit
68823a5edb
@ -72,7 +72,9 @@ class PipelineWorker : public Napi::AsyncWorker {
|
|||||||
int nPages = baton->input->pages;
|
int nPages = baton->input->pages;
|
||||||
if (nPages == -1) {
|
if (nPages == -1) {
|
||||||
// Resolve the number of pages if we need to render until the end of the document
|
// Resolve the number of pages if we need to render until the end of the document
|
||||||
nPages = image.get_typeof(VIPS_META_N_PAGES) != 0 ? image.get_int(VIPS_META_N_PAGES) : 1;
|
nPages = image.get_typeof(VIPS_META_N_PAGES) != 0
|
||||||
|
? image.get_int(VIPS_META_N_PAGES) - baton->input->page
|
||||||
|
: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get pre-resize page height
|
// Get pre-resize page height
|
||||||
|
@ -217,4 +217,15 @@ describe('WebP', function () {
|
|||||||
assert.strictEqual(updated.height, 570 * 9);
|
assert.strictEqual(updated.height, 570 * 9);
|
||||||
assert.strictEqual(updated.pageHeight, 570);
|
assert.strictEqual(updated.pageHeight, 570);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should take page parameter into account when animated is set', async () => {
|
||||||
|
const updated = await sharp(fixtures.inputWebPAnimated, { animated: true, page: 2 })
|
||||||
|
.resize({ height: 570 })
|
||||||
|
.webp({ effort: 0 })
|
||||||
|
.toBuffer()
|
||||||
|
.then(data => sharp(data, { pages: -1 }).metadata());
|
||||||
|
|
||||||
|
assert.strictEqual(updated.height, 570 * 7);
|
||||||
|
assert.strictEqual(updated.pageHeight, 570);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user