From 4ae8999f6241ea18509d6db25bc1f5918758ab3f Mon Sep 17 00:00:00 2001 From: Andargor Date: Wed, 14 Aug 2019 14:01:23 -0400 Subject: [PATCH] Add premultiplied option to composite operation (#1835) --- docs/api-composite.md | 1 + lib/composite.js | 11 ++- src/pipeline.cc | 3 +- src/pipeline.h | 4 +- ...xpected.absent.composite.premultiplied.png | Bin 0 -> 15492 bytes ...expected.false.composite.premultiplied.png | Bin 0 -> 15492 bytes .../expected.true.composite.premultiplied.png | Bin 0 -> 16819 bytes .../input.above.composite.premultiplied.png | Bin 0 -> 15509 bytes .../input.below.composite.premultiplied.png | Bin 0 -> 13788 bytes test/unit/composite.js | 65 ++++++++++++++++++ 10 files changed, 81 insertions(+), 3 deletions(-) create mode 100755 test/fixtures/expected/expected.absent.composite.premultiplied.png create mode 100755 test/fixtures/expected/expected.false.composite.premultiplied.png create mode 100755 test/fixtures/expected/expected.true.composite.premultiplied.png create mode 100755 test/fixtures/input.above.composite.premultiplied.png create mode 100755 test/fixtures/input.below.composite.premultiplied.png mode change 100644 => 100755 test/unit/composite.js diff --git a/docs/api-composite.md b/docs/api-composite.md index 83490cc7..c571edd6 100644 --- a/docs/api-composite.md +++ b/docs/api-composite.md @@ -31,6 +31,7 @@ and [https://www.cairographics.org/operators/][2] - `images[].top` **[Number][7]?** the pixel offset from the top edge. - `images[].left` **[Number][7]?** the pixel offset from the left edge. - `images[].tile` **[Boolean][9]** set to true to repeat the overlay image across the entire image with the given `gravity`. (optional, default `false`) + - `images[].premultiplied` **[Boolean][9]** set to true to avoid premultipling the image below. Equivalent to the `--premultiplied` vips option. (optional, default `false`) - `images[].density` **[Number][7]** number representing the DPI for vector overlay image. (optional, default `72`) - `images[].raw` **[Object][4]?** describes overlay when using raw pixel data. - `images[].raw.width` **[Number][7]?** diff --git a/lib/composite.js b/lib/composite.js index d934bb80..24f61e4a 100644 --- a/lib/composite.js +++ b/lib/composite.js @@ -105,7 +105,8 @@ function composite (images) { tile: false, left: -1, top: -1, - gravity: 0 + gravity: 0, + premultiplied: false }; if (is.defined(image.blend)) { if (is.string(blend[image.blend])) { @@ -147,6 +148,14 @@ function composite (images) { throw is.invalidParameterError('gravity', 'valid gravity', image.gravity); } } + if (is.defined(image.premultiplied)) { + if (is.bool(image.premultiplied)) { + composite.premultiplied = image.premultiplied; + } else { + throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied); + } + } + return composite; }); return this; diff --git a/src/pipeline.cc b/src/pipeline.cc index e68def8c..8cd3b89c 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -591,7 +591,7 @@ class PipelineWorker : public Nan::AsyncWorker { if (!HasAlpha(compositeImage)) { compositeImage = sharp::EnsureAlpha(compositeImage); } - compositeImage = compositeImage.premultiply(); + if (!composite->premultiplied) compositeImage = compositeImage.premultiply(); // Calculate position int left; int top; @@ -1230,6 +1230,7 @@ NAN_METHOD(pipeline) { composite->left = AttrTo(compositeObject, "left"); composite->top = AttrTo(compositeObject, "top"); composite->tile = AttrTo(compositeObject, "tile"); + composite->premultiplied = AttrTo(compositeObject, "premultiplied"); baton->composite.push_back(composite); } // Resize options diff --git a/src/pipeline.h b/src/pipeline.h index 50e62e6b..18db0be3 100644 --- a/src/pipeline.h +++ b/src/pipeline.h @@ -41,6 +41,7 @@ struct Composite { int left; int top; bool tile; + bool premultiplied; Composite(): input(nullptr), @@ -48,7 +49,8 @@ struct Composite { gravity(0), left(-1), top(-1), - tile(false) {} + tile(false), + premultiplied(false) {} }; struct PipelineBaton { diff --git a/test/fixtures/expected/expected.absent.composite.premultiplied.png b/test/fixtures/expected/expected.absent.composite.premultiplied.png new file mode 100755 index 0000000000000000000000000000000000000000..09d90aba1a365a8ade9a15809b31e67167d2d4af GIT binary patch literal 15492 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

@^^M|92l`k5` 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≤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 { }) )); + it('premultiplied true', () => { + const filename = 'composite.premultiplied.png'; + const below = fixtures.path(`input.below.${filename}`); + const above = fixtures.path(`input.above.${filename}`); + const actual = fixtures.path(`output.true.${filename}`); + const expected = fixtures.expected(`expected.true.${filename}`); + return sharp(below) + .composite([{ + input: above, + blend: 'color-burn', + top: 0, + left: 0, + premultiplied: true + }]) + .toFile(actual) + .then(() => { + fixtures.assertMaxColourDistance(actual, expected); + }); + }); + + it('premultiplied false', () => { + const filename = 'composite.premultiplied.png'; + const below = fixtures.path(`input.below.${filename}`); + const above = fixtures.path(`input.above.${filename}`); + const actual = fixtures.path(`output.false.${filename}`); + const expected = fixtures.expected(`expected.false.${filename}`); + return sharp(below) + .composite([{ + input: above, + blend: 'color-burn', + top: 0, + left: 0, + premultiplied: false + }]) + .toFile(actual) + .then(() => { + fixtures.assertMaxColourDistance(actual, expected); + }); + }); + + it('premultiplied absent', () => { + const filename = 'composite.premultiplied.png'; + const below = fixtures.path(`input.below.${filename}`); + const above = fixtures.path(`input.above.${filename}`); + const actual = fixtures.path(`output.absent.${filename}`); + const expected = fixtures.expected(`expected.absent.${filename}`); + return sharp(below) + .composite([{ + input: above, + blend: 'color-burn', + top: 0, + left: 0 + }]) + .toFile(actual) + .then(() => { + fixtures.assertMaxColourDistance(actual, expected); + }); + }); + it('multiple', () => { const filename = 'composite-multiple.png'; const actual = fixtures.path(`output.${filename}`); @@ -265,6 +324,12 @@ describe('composite', () => { }, /Expected boolean for tile but received invalid of type string/); }); + it('invalid premultiplied', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', premultiplied: 'invalid' }]); + }, /Expected boolean for premultiplied but received invalid of type string/); + }); + it('invalid left', () => { assert.throws(() => { sharp().composite([{ input: 'test', left: 0.5 }]);