From 7cafd4386cc00fa3c686da82a1f5a07cc95eebf6 Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Sat, 9 Mar 2019 21:28:45 +0000 Subject: [PATCH] Add composite op, supporting multiple images and blend modes #728 --- docs/api-composite.md | 74 +++-- docs/changelog.md | 3 + lib/composite.js | 195 ++++++++---- lib/constructor.js | 7 +- src/operations.cc | 124 -------- src/operations.h | 21 -- src/pipeline.cc | 167 +++++----- src/pipeline.h | 30 +- test/fixtures/expected/composite-cutout.png | Bin 0 -> 179079 bytes test/fixtures/expected/composite-multiple.png | Bin 0 -> 222 bytes .../expected/composite.blend.dest-over.png | Bin 0 -> 197 bytes .../expected/composite.blend.over.png | Bin 0 -> 197 bytes .../expected/composite.blend.saturate.png | Bin 0 -> 194 bytes .../fixtures/expected/composite.blend.xor.png | Bin 0 -> 192 bytes test/unit/composite.js | 298 ++++++++++++++++++ test/unit/overlay.js | 55 ++-- 16 files changed, 605 insertions(+), 369 deletions(-) create mode 100644 test/fixtures/expected/composite-cutout.png create mode 100644 test/fixtures/expected/composite-multiple.png create mode 100644 test/fixtures/expected/composite.blend.dest-over.png create mode 100644 test/fixtures/expected/composite.blend.over.png create mode 100644 test/fixtures/expected/composite.blend.saturate.png create mode 100644 test/fixtures/expected/composite.blend.xor.png create mode 100644 test/unit/composite.js diff --git a/docs/api-composite.md b/docs/api-composite.md index d9c99eed..05a83201 100644 --- a/docs/api-composite.md +++ b/docs/api-composite.md @@ -1,33 +1,41 @@ -## overlayWith +## composite -Overlay (composite) an image over the processed (resized, extracted etc.) image. +Composite image(s) over the processed (resized, extracted etc.) image. -The overlay image must be the same size or smaller than the processed image. +The images to composite must be the same size or smaller than the processed image. If both `top` and `left` options are provided, they take precedence over `gravity`. -If the overlay image contains an alpha channel then composition with premultiplication will occur. +The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, +`dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, +`xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, +`colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, +`hard-light`, `soft-light`, `difference`, `exclusion`. + +More information about blend modes can be found at +[https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsBlendMode][1] +and [https://www.cairographics.org/operators/][2] ### Parameters -- `overlay` **([Buffer][1] \| [String][2])?** Buffer containing image data or String containing the path to an image file. -- `options` **[Object][3]?** - - `options.gravity` **[String][2]** gravity at which to place the overlay. (optional, default `'centre'`) - - `options.top` **[Number][4]?** the pixel offset from the top edge. - - `options.left` **[Number][4]?** the pixel offset from the left edge. - - `options.tile` **[Boolean][5]** set to true to repeat the overlay image across the entire image with the given `gravity`. (optional, default `false`) - - `options.cutout` **[Boolean][5]** set to true to apply only the alpha channel of the overlay image to the input image, giving the appearance of one image being cut out of another. (optional, default `false`) - - `options.density` **[Number][4]** number representing the DPI for vector overlay image. (optional, default `72`) - - `options.raw` **[Object][3]?** describes overlay when using raw pixel data. - - `options.raw.width` **[Number][4]?** - - `options.raw.height` **[Number][4]?** - - `options.raw.channels` **[Number][4]?** - - `options.create` **[Object][3]?** describes a blank overlay to be created. - - `options.create.width` **[Number][4]?** - - `options.create.height` **[Number][4]?** - - `options.create.channels` **[Number][4]?** 3-4 - - `options.create.background` **([String][2] \| [Object][3])?** parsed by the [color][6] module to extract values for red, green, blue and alpha. +- `images` **[Array][3]<[Object][4]>** Ordered list of images to composite + - `images[].input` **([Buffer][5] \| [String][6])?** Buffer containing image data or String containing the path to an image file. + - `images[].blend` **[String][6]** how to blend this image with the image below. (optional, default `'over'`) + - `images[].gravity` **[String][6]** gravity at which to place the overlay. (optional, default `'centre'`) + - `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][8]** set to true to repeat the overlay image across the entire image with the given `gravity`. (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]?** + - `images[].raw.height` **[Number][7]?** + - `images[].raw.channels` **[Number][7]?** + - `images[].create` **[Object][4]?** describes a blank overlay to be created. + - `images[].create.width` **[Number][7]?** + - `images[].create.height` **[Number][7]?** + - `images[].create.channels` **[Number][7]?** 3-4 + - `images[].create.background` **([String][6] \| [Object][4])?** parsed by the [color][9] module to extract values for red, green, blue and alpha. ### Examples @@ -36,7 +44,7 @@ sharp('input.png') .rotate(180) .resize(300) .flatten( { background: '#ff6600' } ) - .overlayWith('overlay.png', { gravity: sharp.gravity.southeast } ) + .composite([{ input: 'overlay.png', gravity: 'southeast' }]) .sharpen() .withMetadata() .webp( { quality: 90 } ) @@ -48,20 +56,26 @@ sharp('input.png') }); ``` -- Throws **[Error][7]** Invalid parameters +- Throws **[Error][10]** Invalid parameters Returns **Sharp** -[1]: https://nodejs.org/api/buffer.html +[1]: https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsBlendMode -[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[2]: https://www.cairographics.org/operators/ -[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array -[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[5]: https://nodejs.org/api/buffer.html -[6]: https://www.npmjs.org/package/color +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number + +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean + +[9]: https://www.npmjs.org/package/color + +[10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error diff --git a/docs/changelog.md b/docs/changelog.md index d1cd5d0d..cc372ca2 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -9,6 +9,9 @@ Requires libvips v8.7.4. * Remove functions previously deprecated in v0.21.0: `background`, `crop`, `embed`, `ignoreAspectRatio`, `max`, `min` and `withoutEnlargement`. +* Add `composite` operation supporting multiple images and blend modes; deprecate `overlayWith`. + [#728](https://github.com/lovell/sharp/issues/728) + ### v0.21 - "*teeth*" Requires libvips v8.7.0. diff --git a/lib/composite.js b/lib/composite.js index 46dcdd0a..94e9c202 100644 --- a/lib/composite.js +++ b/lib/composite.js @@ -1,21 +1,66 @@ 'use strict'; +const deprecate = require('util').deprecate; + const is = require('./is'); /** - * Overlay (composite) an image over the processed (resized, extracted etc.) image. + * Blend modes. + * @member + * @private + */ +const blend = { + clear: 'clear', + source: 'source', + over: 'over', + in: 'in', + out: 'out', + atop: 'atop', + dest: 'dest', + 'dest-over': 'dest-over', + 'dest-in': 'dest-in', + 'dest-out': 'dest-out', + 'dest-atop': 'dest-atop', + xor: 'xor', + add: 'add', + saturate: 'saturate', + multiply: 'multiply', + screen: 'screen', + overlay: 'overlay', + darken: 'darken', + lighten: 'lighten', + 'colour-dodge': 'colour-dodge', + 'color-dodge': 'colour-dodge', + 'colour-burn': 'colour-burn', + 'color-burn': 'colour-burn', + 'hard-light': 'hard-light', + 'soft-light': 'soft-light', + difference: 'difference', + exclusion: 'exclusion' +}; + +/** + * Composite image(s) over the processed (resized, extracted etc.) image. * - * The overlay image must be the same size or smaller than the processed image. + * The images to composite must be the same size or smaller than the processed image. * If both `top` and `left` options are provided, they take precedence over `gravity`. * - * If the overlay image contains an alpha channel then composition with premultiplication will occur. + * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, + * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, + * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, + * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, + * `hard-light`, `soft-light`, `difference`, `exclusion`. + * + * More information about blend modes can be found at + * https://libvips.github.io/libvips/API/current/libvips-conversion.html#VipsBlendMode + * and https://www.cairographics.org/operators/ * * @example * sharp('input.png') * .rotate(180) * .resize(300) * .flatten( { background: '#ff6600' } ) - * .overlayWith('overlay.png', { gravity: sharp.gravity.southeast } ) + * .composite([{ input: 'overlay.png', gravity: 'southeast' }]) * .sharpen() * .withMetadata() * .webp( { quality: 90 } ) @@ -26,70 +71,104 @@ const is = require('./is'); * // sharpened, with metadata, 90% quality WebP image data. Phew! * }); * - * @param {(Buffer|String)} [overlay] - Buffer containing image data or String containing the path to an image file. - * @param {Object} [options] - * @param {String} [options.gravity='centre'] - gravity at which to place the overlay. - * @param {Number} [options.top] - the pixel offset from the top edge. - * @param {Number} [options.left] - the pixel offset from the left edge. - * @param {Boolean} [options.tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`. - * @param {Boolean} [options.cutout=false] - set to true to apply only the alpha channel of the overlay image to the input image, giving the appearance of one image being cut out of another. - * @param {Number} [options.density=72] - number representing the DPI for vector overlay image. - * @param {Object} [options.raw] - describes overlay when using raw pixel data. - * @param {Number} [options.raw.width] - * @param {Number} [options.raw.height] - * @param {Number} [options.raw.channels] - * @param {Object} [options.create] - describes a blank overlay to be created. - * @param {Number} [options.create.width] - * @param {Number} [options.create.height] - * @param {Number} [options.create.channels] - 3-4 - * @param {String|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object[]} images - Ordered list of images to composite + * @param {Buffer|String} [images[].input] - Buffer containing image data or String containing the path to an image file. + * @param {String} [images[].blend='over'] - how to blend this image with the image below. + * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay. + * @param {Number} [images[].top] - the pixel offset from the top edge. + * @param {Number} [images[].left] - the pixel offset from the left edge. + * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`. + * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image. + * @param {Object} [images[].raw] - describes overlay when using raw pixel data. + * @param {Number} [images[].raw.width] + * @param {Number} [images[].raw.height] + * @param {Number} [images[].raw.channels] + * @param {Object} [images[].create] - describes a blank overlay to be created. + * @param {Number} [images[].create.width] + * @param {Number} [images[].create.height] + * @param {Number} [images[].create.channels] - 3-4 + * @param {String|Object} [images[].create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. * @returns {Sharp} * @throws {Error} Invalid parameters */ -function overlayWith (overlay, options) { - this.options.overlay = this._createInputDescriptor(overlay, options, { - allowStream: false - }); - if (is.object(options)) { - if (is.defined(options.tile)) { - if (is.bool(options.tile)) { - this.options.overlayTile = options.tile; - } else { - throw new Error('Invalid overlay tile ' + options.tile); - } - } - if (is.defined(options.cutout)) { - if (is.bool(options.cutout)) { - this.options.overlayCutout = options.cutout; - } else { - throw new Error('Invalid overlay cutout ' + options.cutout); - } - } - if (is.defined(options.left) || is.defined(options.top)) { - if (is.integer(options.left) && options.left >= 0 && is.integer(options.top) && options.top >= 0) { - this.options.overlayXOffset = options.left; - this.options.overlayYOffset = options.top; - } else { - throw new Error('Invalid overlay left ' + options.left + ' and/or top ' + options.top); - } - } - if (is.defined(options.gravity)) { - if (is.integer(options.gravity) && is.inRange(options.gravity, 0, 8)) { - this.options.overlayGravity = options.gravity; - } else if (is.string(options.gravity) && is.integer(this.constructor.gravity[options.gravity])) { - this.options.overlayGravity = this.constructor.gravity[options.gravity]; - } else { - throw new Error('Unsupported overlay gravity ' + options.gravity); - } - } +function composite (images) { + if (!Array.isArray(images)) { + throw is.invalidParameterError('images to composite', 'array', images); } + this.options.composite = images.map(image => { + if (!is.object(image)) { + throw is.invalidParameterError('image to composite', 'object', image); + } + const { raw, density } = image; + const inputOptions = (raw || density) ? { raw, density } : undefined; + const composite = { + input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }), + blend: 'over', + tile: false, + left: -1, + top: -1, + gravity: 0 + }; + if (is.defined(image.blend)) { + if (is.string(blend[image.blend])) { + composite.blend = blend[image.blend]; + } else { + throw is.invalidParameterError('blend', 'valid blend name', image.blend); + } + } + if (is.defined(image.tile)) { + if (is.bool(image.tile)) { + composite.tile = image.tile; + } else { + throw is.invalidParameterError('tile', 'boolean', image.tile); + } + } + if (is.defined(image.left)) { + if (is.integer(image.left) && image.left >= 0) { + composite.left = image.left; + } else { + throw is.invalidParameterError('left', 'positive integer', image.left); + } + } + if (is.defined(image.top)) { + if (is.integer(image.top) && image.top >= 0) { + composite.top = image.top; + } else { + throw is.invalidParameterError('top', 'positive integer', image.top); + } + } + if (composite.left !== composite.top && Math.min(composite.left, composite.top) === -1) { + throw new Error('Expected both left and top to be set'); + } + if (is.defined(image.gravity)) { + if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) { + composite.gravity = image.gravity; + } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) { + composite.gravity = this.constructor.gravity[image.gravity]; + } else { + throw is.invalidParameterError('gravity', 'valid gravity', image.gravity); + } + } + return composite; + }); return this; } +/** + * @deprecated + * @private + */ +function overlayWith (input, options) { + const blend = (is.object(options) && options.cutout) ? 'dest-in' : 'over'; + return this.composite([Object.assign({ input, blend }, options)]); +} + /** * Decorate the Sharp prototype with composite-related functions. * @private */ module.exports = function (Sharp) { - Sharp.prototype.overlayWith = overlayWith; + Sharp.prototype.composite = composite; + Sharp.prototype.overlayWith = deprecate(overlayWith, 'overlayWith(input, options) is deprecated, use composite([{ input, ...options }]) instead'); + Sharp.blend = blend; }; diff --git a/lib/constructor.js b/lib/constructor.js index 498fa89b..b156ccdd 100644 --- a/lib/constructor.js +++ b/lib/constructor.js @@ -145,12 +145,7 @@ const Sharp = function (input, options) { removeAlpha: false, ensureAlpha: false, colourspace: 'srgb', - // overlay - overlayGravity: 0, - overlayXOffset: -1, - overlayYOffset: -1, - overlayTile: false, - overlayCutout: false, + composite: [], // output fileOut: '', formatOut: 'input', diff --git a/src/operations.cc b/src/operations.cc index f34cae04..e9bcbbcb 100644 --- a/src/operations.cc +++ b/src/operations.cc @@ -50,130 +50,6 @@ namespace sharp { return image; } - /* - Composite overlayImage over image at given position - Assumes alpha channels are already premultiplied and will be unpremultiplied after - */ - VImage Composite(VImage image, VImage overlayImage, int const left, int const top) { - if (HasAlpha(overlayImage)) { - // Alpha composite - if (overlayImage.width() < image.width() || overlayImage.height() < image.height()) { - // Enlarge overlay - std::vector const background { 0.0, 0.0, 0.0, 0.0 }; - overlayImage = overlayImage.embed(left, top, image.width(), image.height(), VImage::option() - ->set("extend", VIPS_EXTEND_BACKGROUND) - ->set("background", background)); - } - return AlphaComposite(image, overlayImage); - } else { - if (HasAlpha(image)) { - // Add alpha channel to overlayImage so channels match - double const multiplier = sharp::Is16Bit(overlayImage.interpretation()) ? 256.0 : 1.0; - overlayImage = overlayImage.bandjoin( - VImage::new_matrix(overlayImage.width(), overlayImage.height()).new_from_image(255 * multiplier)); - } - return image.insert(overlayImage, left, top); - } - } - - VImage AlphaComposite(VImage dst, VImage src) { - // Split src into non-alpha and alpha channels - VImage srcWithoutAlpha = src.extract_band(0, VImage::option()->set("n", src.bands() - 1)); - VImage srcAlpha = src[src.bands() - 1] * (1.0 / 255.0); - - // Split dst into non-alpha and alpha channels - VImage dstWithoutAlpha = dst.extract_band(0, VImage::option()->set("n", dst.bands() - 1)); - VImage dstAlpha = dst[dst.bands() - 1] * (1.0 / 255.0); - - // - // Compute normalized output alpha channel: - // - // References: - // - http://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending - // - https://github.com/libvips/ruby-vips/issues/28#issuecomment-9014826 - // - // out_a = src_a + dst_a * (1 - src_a) - // ^^^^^^^^^^^ - // t0 - VImage t0 = srcAlpha.linear(-1.0, 1.0); - VImage outAlphaNormalized = srcAlpha + dstAlpha * t0; - - // - // Compute output RGB channels: - // - // Wikipedia: - // out_rgb = (src_rgb * src_a + dst_rgb * dst_a * (1 - src_a)) / out_a - // ^^^^^^^^^^^ - // t0 - // - // Omit division by `out_a` since `Compose` is supposed to output a - // premultiplied RGBA image as reversal of premultiplication is handled - // externally. - // - VImage outRGBPremultiplied = srcWithoutAlpha + dstWithoutAlpha * t0; - - // Combine RGB and alpha channel into output image: - return outRGBPremultiplied.bandjoin(outAlphaNormalized * 255.0); - } - - /* - Cutout src over dst with given gravity. - */ - VImage Cutout(VImage mask, VImage dst, const int gravity) { - using sharp::CalculateCrop; - using sharp::HasAlpha; - using sharp::MaximumImageAlpha; - - bool maskHasAlpha = HasAlpha(mask); - - if (!maskHasAlpha && mask.bands() > 1) { - throw VError("Overlay image must have an alpha channel or one band"); - } - if (!HasAlpha(dst)) { - throw VError("Image to be overlaid must have an alpha channel"); - } - if (mask.width() > dst.width() || mask.height() > dst.height()) { - throw VError("Overlay image must have same dimensions or smaller"); - } - - // Enlarge overlay mask, if required - if (mask.width() < dst.width() || mask.height() < dst.height()) { - // Calculate the (left, top) coordinates of the output image within the input image, applying the given gravity. - int left; - int top; - std::tie(left, top) = CalculateCrop(dst.width(), dst.height(), mask.width(), mask.height(), gravity); - // Embed onto transparent background - std::vector background { 0.0, 0.0, 0.0, 0.0 }; - mask = mask.embed(left, top, dst.width(), dst.height(), VImage::option() - ->set("extend", VIPS_EXTEND_BACKGROUND) - ->set("background", background)); - } - - // we use the mask alpha if it has alpha - if (maskHasAlpha) { - mask = mask.extract_band(mask.bands() - 1, VImage::option()->set("n", 1));; - } - - // Split dst into an optional alpha - VImage dstAlpha = dst.extract_band(dst.bands() - 1, VImage::option()->set("n", 1)); - - // we use the dst non-alpha - dst = dst.extract_band(0, VImage::option()->set("n", dst.bands() - 1)); - - // the range of the mask and the image need to match .. one could be - // 16-bit, one 8-bit - double const dstMax = MaximumImageAlpha(dst.interpretation()); - double const maskMax = MaximumImageAlpha(mask.interpretation()); - - // combine the new mask and the existing alpha ... there are - // many ways of doing this, mult is the simplest - mask = dstMax * ((mask / maskMax) * (dstAlpha / dstMax)); - - // append the mask to the image data ... the mask might be float now, - // we must cast the format down to match the image data - return dst.bandjoin(mask.cast(dst.format())); - } - /* * Tint an image using the specified chroma, preserving the original image luminance */ diff --git a/src/operations.h b/src/operations.h index dd27f684..a5881371 100644 --- a/src/operations.h +++ b/src/operations.h @@ -35,27 +35,6 @@ namespace sharp { */ VImage EnsureAlpha(VImage image); - /* - Alpha composite src over dst with given gravity. - Assumes alpha channels are already premultiplied and will be unpremultiplied after. - */ - VImage Composite(VImage src, VImage dst, const int gravity); - - /* - Composite overlayImage over image at given position - */ - VImage Composite(VImage image, VImage overlayImage, int const x, int const y); - - /* - Alpha composite overlayImage over image, assumes matching dimensions - */ - VImage AlphaComposite(VImage image, VImage overlayImage); - - /* - Cutout src over dst with given gravity. - */ - VImage Cutout(VImage src, VImage dst, const int gravity); - /* * Tint an image using the specified chroma, preserving the original image luminance */ diff --git a/src/pipeline.cc b/src/pipeline.cc index 2bc9c568..a267fd58 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -343,30 +343,19 @@ class PipelineWorker : public Nan::AsyncWorker { image = image.colourspace(VIPS_INTERPRETATION_B_W); } - // Ensure image has an alpha channel when there is an overlay with an alpha channel - VImage overlayImage; - ImageType overlayImageType = ImageType::UNKNOWN; - bool shouldOverlayWithAlpha = FALSE; - if (baton->overlay != nullptr) { - std::tie(overlayImage, overlayImageType) = OpenInput(baton->overlay, baton->accessMethod); - if (HasAlpha(overlayImage)) { - shouldOverlayWithAlpha = !baton->overlayCutout; - if (!HasAlpha(image)) { - double const multiplier = sharp::Is16Bit(image.interpretation()) ? 256.0 : 1.0; - image = image.bandjoin( - VImage::new_matrix(image.width(), image.height()).new_from_image(255 * multiplier)); - } - } - } - bool const shouldResize = xfactor != 1.0 || yfactor != 1.0; bool const shouldBlur = baton->blurSigma != 0.0; bool const shouldConv = baton->convKernelWidth * baton->convKernelHeight > 0; bool const shouldSharpen = baton->sharpenSigma != 0.0; bool const shouldApplyMedian = baton->medianSize > 0; + bool const shouldComposite = !baton->composite.empty(); + + if (shouldComposite && !HasAlpha(image)) { + image = sharp::EnsureAlpha(image); + } bool const shouldPremultiplyAlpha = HasAlpha(image) && - (shouldResize || shouldBlur || shouldConv || shouldSharpen || shouldOverlayWithAlpha); + (shouldResize || shouldBlur || shouldConv || shouldSharpen || shouldComposite); // Premultiply image alpha channel before all transformations to avoid // dark fringing around bright pixels @@ -544,72 +533,67 @@ class PipelineWorker : public Nan::AsyncWorker { image = sharp::Sharpen(image, baton->sharpenSigma, baton->sharpenFlat, baton->sharpenJagged); } - // Composite with overlay, if present - if (baton->overlay != nullptr) { - // Verify overlay image is within current dimensions - if (overlayImage.width() > image.width() || overlayImage.height() > image.height()) { - throw vips::VError("Overlay image must have same dimensions or smaller"); - } - // Check if overlay is tiled - if (baton->overlayTile) { - int const overlayImageWidth = overlayImage.width(); - int const overlayImageHeight = overlayImage.height(); - int across = 0; - int down = 0; - // Use gravity in overlay - if (overlayImageWidth <= baton->width) { - across = static_cast(ceil(static_cast(image.width()) / overlayImageWidth)); + // Composite + if (shouldComposite) { + for (Composite *composite : baton->composite) { + VImage compositeImage; + ImageType compositeImageType = ImageType::UNKNOWN; + std::tie(compositeImage, compositeImageType) = OpenInput(composite->input, baton->accessMethod); + // Verify within current dimensions + if (compositeImage.width() > image.width() || compositeImage.height() > image.height()) { + throw vips::VError("Image to composite must have same dimensions or smaller"); } - if (overlayImageHeight <= baton->height) { - down = static_cast(ceil(static_cast(image.height()) / overlayImageHeight)); - } - if (across != 0 || down != 0) { - int left; - int top; - overlayImage = overlayImage.replicate(across, down); - if (baton->overlayXOffset >= 0 && baton->overlayYOffset >= 0) { - // the overlayX/YOffsets will now be used to CalculateCrop for extract_area - std::tie(left, top) = sharp::CalculateCrop( - overlayImage.width(), overlayImage.height(), image.width(), image.height(), - baton->overlayXOffset, baton->overlayYOffset); - } else { - // the overlayGravity will now be used to CalculateCrop for extract_area - std::tie(left, top) = sharp::CalculateCrop( - overlayImage.width(), overlayImage.height(), image.width(), image.height(), baton->overlayGravity); + // Check if overlay is tiled + if (composite->tile) { + int across = 0; + int down = 0; + // Use gravity in overlay + if (compositeImage.width() <= baton->width) { + across = static_cast(ceil(static_cast(image.width()) / compositeImage.width())); } - overlayImage = overlayImage.extract_area(left, top, image.width(), image.height()); - } - // the overlayGravity was used for extract_area, therefore set it back to its default value of 0 - baton->overlayGravity = 0; - } - if (baton->overlayCutout) { - // 'cut out' the image, premultiplication is not required - image = sharp::Cutout(overlayImage, image, baton->overlayGravity); - } else { - // Ensure overlay is sRGB - overlayImage = overlayImage.colourspace(VIPS_INTERPRETATION_sRGB); - // Ensure overlay matches premultiplication state - if (shouldPremultiplyAlpha) { - // Ensure overlay has alpha channel - if (!HasAlpha(overlayImage)) { - double const multiplier = sharp::Is16Bit(overlayImage.interpretation()) ? 256.0 : 1.0; - overlayImage = overlayImage.bandjoin( - VImage::new_matrix(overlayImage.width(), overlayImage.height()).new_from_image(255 * multiplier)); + if (compositeImage.height() <= baton->height) { + down = static_cast(ceil(static_cast(image.height()) / compositeImage.height())); } - overlayImage = overlayImage.premultiply(); + if (across != 0 || down != 0) { + int left; + int top; + compositeImage = compositeImage.replicate(across, down); + if (composite->left >= 0 && composite->top >= 0) { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), + composite->left, composite->top); + } else { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), composite->gravity); + } + compositeImage = compositeImage.extract_area(left, top, image.width(), image.height()); + } + // gravity was used for extract_area, set it back to its default value of 0 + composite->gravity = 0; } + // Ensure image to composite is sRGB with premultiplied alpha + compositeImage = compositeImage.colourspace(VIPS_INTERPRETATION_sRGB); + if (!HasAlpha(compositeImage)) { + compositeImage = sharp::EnsureAlpha(compositeImage); + } + compositeImage = compositeImage.premultiply(); + // Calculate position int left; int top; - if (baton->overlayXOffset >= 0 && baton->overlayYOffset >= 0) { - // Composite images at given offsets + if (composite->left >= 0 && composite->top >= 0) { + // Composite image at given offsets std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), - overlayImage.width(), overlayImage.height(), baton->overlayXOffset, baton->overlayYOffset); + compositeImage.width(), compositeImage.height(), composite->left, composite->top); } else { - // Composite images with given gravity + // Composite image with given gravity std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), - overlayImage.width(), overlayImage.height(), baton->overlayGravity); + compositeImage.width(), compositeImage.height(), composite->gravity); } - image = sharp::Composite(image, overlayImage, left, top); + // Composite + image = image.composite2(compositeImage, composite->mode, VImage::option() + ->set("premultiplied", TRUE) + ->set("x", left) + ->set("y", top)); } } @@ -1029,13 +1013,17 @@ class PipelineWorker : public Nan::AsyncWorker { GetFromPersistent(index); return index + 1; }); + + // Delete baton delete baton->input; - delete baton->overlay; delete baton->boolean; - for_each(baton->joinChannelIn.begin(), baton->joinChannelIn.end(), - [this](sharp::InputDescriptor *joinChannelIn) { - delete joinChannelIn; - }); + for (Composite *composite : baton->composite) { + delete composite->input; + delete composite; + } + for (sharp::InputDescriptor *input : baton->joinChannelIn) { + delete input; + } delete baton; // Handle warnings @@ -1182,14 +1170,21 @@ NAN_METHOD(pipeline) { // Tint chroma baton->tintA = AttrTo(options, "tintA"); baton->tintB = AttrTo(options, "tintB"); - // Overlay options - if (HasAttr(options, "overlay")) { - baton->overlay = CreateInputDescriptor(AttrAs(options, "overlay"), buffersToPersist); - baton->overlayGravity = AttrTo(options, "overlayGravity"); - baton->overlayXOffset = AttrTo(options, "overlayXOffset"); - baton->overlayYOffset = AttrTo(options, "overlayYOffset"); - baton->overlayTile = AttrTo(options, "overlayTile"); - baton->overlayCutout = AttrTo(options, "overlayCutout"); + // Composite + v8::Local compositeArray = Nan::Get(options, Nan::New("composite").ToLocalChecked()) + .ToLocalChecked().As(); + int const compositeArrayLength = AttrTo(compositeArray, "length"); + for (int i = 0; i < compositeArrayLength; i++) { + v8::Local compositeObject = Nan::Get(compositeArray, i).ToLocalChecked().As(); + Composite *composite = new Composite; + composite->input = CreateInputDescriptor(AttrAs(compositeObject, "input"), buffersToPersist); + composite->mode = static_cast( + vips_enum_from_nick(nullptr, VIPS_TYPE_BLEND_MODE, AttrAsStr(compositeObject, "blend").data())); + composite->gravity = AttrTo(compositeObject, "gravity"); + composite->left = AttrTo(compositeObject, "left"); + composite->top = AttrTo(compositeObject, "top"); + composite->tile = AttrTo(compositeObject, "tile"); + baton->composite.push_back(composite); } // Resize options baton->withoutEnlargement = AttrTo(options, "withoutEnlargement"); diff --git a/src/pipeline.h b/src/pipeline.h index 4dee6cad..a80411fa 100644 --- a/src/pipeline.h +++ b/src/pipeline.h @@ -34,6 +34,23 @@ enum class Canvas { IGNORE_ASPECT }; +struct Composite { + sharp::InputDescriptor *input; + VipsBlendMode mode; + int gravity; + int left; + int top; + bool tile; + + Composite(): + input(nullptr), + mode(VIPS_BLEND_MODE_OVER), + gravity(0), + left(-1), + top(-1), + tile(false) {} +}; + struct PipelineBaton { sharp::InputDescriptor *input; std::string iccProfilePath; @@ -42,12 +59,7 @@ struct PipelineBaton { std::string fileOut; void *bufferOut; size_t bufferOutLength; - sharp::InputDescriptor *overlay; - int overlayGravity; - int overlayXOffset; - int overlayYOffset; - bool overlayTile; - bool overlayCutout; + std::vector composite; std::vector joinChannelIn; int topOffsetPre; int leftOffsetPre; @@ -161,12 +173,6 @@ struct PipelineBaton { input(nullptr), limitInputPixels(0), bufferOutLength(0), - overlay(nullptr), - overlayGravity(0), - overlayXOffset(-1), - overlayYOffset(-1), - overlayTile(false), - overlayCutout(false), topOffsetPre(-1), topOffsetPost(-1), channels(0), diff --git a/test/fixtures/expected/composite-cutout.png b/test/fixtures/expected/composite-cutout.png new file mode 100644 index 0000000000000000000000000000000000000000..5f75e8fff33778654085bbaf6f1d1b8b628ff7c9 GIT binary patch literal 179079 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

F?Y;Qyh) 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%0D+Skx39%;_OVJSLow-Z{qI78)i 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

5Y2`#0#yXMtudIB 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

SDGv9fOw8%6N^w0pH?E5M-6y2( z(B|D%?FjBs72T1gJ7=iS&W_>^Rn={(vHOJBW7@@gR8bGk4C65^pp=`rd$1k1_qE{e zfp*%_PTlpBQa@`GzB@XAucWLpk3Ts%ihmy8tjZ_9eQX4~HZDY3pgEF*?2r&(i$qyd z=x?RQOiE&$kVm^y5N=11i|zgs{7nCh%m5Q~RK;U+eFg@XCSqtsI!0FJU}swuCc5fS zpBG6>6oDmq@d{QI>5(W;3r9hG5EiCJtNf!Nb|`*x|BP7EIneU{l4Q^}TE3R_STrVv z)B1%ISl+aMURbA1#418eUgr@I`TVR!p^hjbWF^XIXJz;6GD4~}Qd(EF6Siy+5$b9I zOWHtF(|Ic9&z}x`{h2T_oCgz=c?8x1DysQPVcGDyf)+!L9jx@=u!MtJ+6TFXfD!O|>0EX$!i%nP8J3dGX9AXE@qwRvHv z$rUvkfTpr2^w%U|s3so6HF5kd6RC%RE9h%K2`d4LEP7VZnjFUxYv^pP zY+kUdtu7S61W=A@CQ!jl#;$lxGUWrDtO+X1C$N%5(SA0@@Uby~ueAXmZh;lmm94(o z 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 { + it('blend', () => Promise.all( + blends.map(blend => { + const filename = `composite.blend.${blend}.png`; + const actual = fixtures.path(`output.${filename}`); + const expected = fixtures.expected(filename); + return sharp(redRect) + .composite([{ + input: blueRect, + blend + }]) + .toFile(actual) + .then(() => { + fixtures.assertMaxColourDistance(actual, expected); + }); + }) + )); + + it('multiple', () => { + const filename = 'composite-multiple.png'; + const actual = fixtures.path(`output.${filename}`); + const expected = fixtures.expected(filename); + return sharp(redRect) + .composite([{ + input: blueRect, + gravity: 'northeast' + }, { + input: greenRect, + gravity: 'southwest' + }]) + .toFile(actual) + .then(() => { + fixtures.assertMaxColourDistance(actual, expected); + }); + }); + + it('zero offset', done => { + sharp(fixtures.inputJpg) + .resize(400) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + top: 0, + left: 0 + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(fixtures.expected('overlay-offset-0.jpg'), data, done); + }); + }); + + it('offset and gravity', done => { + sharp(fixtures.inputJpg) + .resize(400) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + left: 10, + top: 10, + gravity: 4 + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(fixtures.expected('overlay-offset-with-gravity.jpg'), data, done); + }); + }); + + it('offset, gravity and tile', done => { + sharp(fixtures.inputJpg) + .resize(400) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + left: 10, + top: 10, + gravity: 4, + tile: true + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(fixtures.expected('overlay-offset-with-gravity-tile.jpg'), data, done); + }); + }); + + it('offset and tile', done => { + sharp(fixtures.inputJpg) + .resize(400) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + left: 10, + top: 10, + tile: true + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(fixtures.expected('overlay-offset-with-tile.jpg'), data, done); + }); + }); + + it('cutout via dest-in', done => { + sharp(fixtures.inputJpg) + .resize(300, 300) + .composite([{ + input: Buffer.from(''), + density: 96, + blend: 'dest-in', + cutout: true + }]) + .png() + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('png', info.format); + assert.strictEqual(300, info.width); + assert.strictEqual(300, info.height); + assert.strictEqual(4, info.channels); + fixtures.assertSimilar(fixtures.expected('composite-cutout.png'), data, done); + }); + }); + + describe('numeric gravity', () => { + Object.keys(sharp.gravity).forEach(gravity => { + it(gravity, done => { + sharp(fixtures.inputJpg) + .resize(80) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + gravity: gravity + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(80, info.width); + assert.strictEqual(65, info.height); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(fixtures.expected(`overlay-gravity-${gravity}.jpg`), data, done); + }); + }); + }); + }); + + describe('string gravity', () => { + Object.keys(sharp.gravity).forEach(gravity => { + it(gravity, done => { + const expected = fixtures.expected('overlay-gravity-' + gravity + '.jpg'); + sharp(fixtures.inputJpg) + .resize(80) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + gravity: sharp.gravity[gravity] + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(80, info.width); + assert.strictEqual(65, info.height); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(expected, data, done); + }); + }); + }); + }); + + describe('tile and gravity', () => { + Object.keys(sharp.gravity).forEach(gravity => { + it(gravity, done => { + const expected = fixtures.expected('overlay-tile-gravity-' + gravity + '.jpg'); + sharp(fixtures.inputJpg) + .resize(80) + .composite([{ + input: fixtures.inputPngWithTransparency16bit, + tile: true, + gravity: gravity + }]) + .toBuffer((err, data, info) => { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(80, info.width); + assert.strictEqual(65, info.height); + assert.strictEqual(3, info.channels); + fixtures.assertSimilar(expected, data, done); + }); + }); + }); + }); + + describe('validation', () => { + it('missing images', () => { + assert.throws(() => { + sharp().composite(); + }, /Expected array for images to composite but received undefined of type undefined/); + }); + + it('invalid images', () => { + assert.throws(() => { + sharp().composite(['invalid']); + }, /Expected object for image to composite but received invalid of type string/); + }); + + it('missing input', () => { + assert.throws(() => { + sharp().composite([{}]); + }, /Unsupported input/); + }); + + it('invalid blend', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', blend: 'invalid' }]); + }, /Expected valid blend name for blend but received invalid of type string/); + }); + + it('invalid tile', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', tile: 'invalid' }]); + }, /Expected boolean for tile but received invalid of type string/); + }); + + it('invalid left', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', left: 0.5 }]); + }, /Expected positive integer for left but received 0.5 of type number/); + }); + + it('invalid top', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', top: -1 }]); + }, /Expected positive integer for top but received -1 of type number/); + }); + + it('left but no top', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', left: 1 }]); + }, /Expected both left and top to be set/); + }); + + it('top but no left', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', top: 1 }]); + }, /Expected both left and top to be set/); + }); + + it('invalid gravity', () => { + assert.throws(() => { + sharp().composite([{ input: 'test', gravity: 'invalid' }]); + }, /Expected valid gravity for gravity but received invalid of type string/); + }); + }); +}); diff --git a/test/unit/overlay.js b/test/unit/overlay.js index 7e60c232..1a3a6922 100644 --- a/test/unit/overlay.js +++ b/test/unit/overlay.js @@ -140,37 +140,35 @@ describe('Overlays', function () { }); }); - if (sharp.format.webp.input.file) { - it('Composite WebP onto JPEG', function (done) { - const paths = getPaths('overlay-jpeg-with-webp', 'jpg'); + it('Composite WebP onto JPEG', function (done) { + const paths = getPaths('overlay-jpeg-with-webp', 'jpg'); - sharp(fixtures.inputJpg) - .resize(300, 300) - .overlayWith(fixtures.inputWebPWithTransparency) - .toFile(paths.actual, function (error, info) { - if (error) return done(error); - fixtures.assertMaxColourDistance(paths.actual, paths.expected, 102); - done(); - }); - }); - } - - it('Composite JPEG onto PNG, no premultiply', function (done) { - sharp(fixtures.inputPngOverlayLayer1) - .overlayWith(fixtures.inputJpgWithLandscapeExif1) - .toBuffer(function (err, data, info) { - if (err) throw err; - assert.strictEqual(false, info.premultiplied); + sharp(fixtures.inputJpg) + .resize(300, 300) + .overlayWith(fixtures.inputWebPWithTransparency) + .toFile(paths.actual, function (error, info) { + if (error) return done(error); + fixtures.assertMaxColourDistance(paths.actual, paths.expected, 102); done(); }); }); - it('Composite opaque JPEG onto JPEG, no premultiply', function (done) { + it('Composite JPEG onto PNG, ensure premultiply', function (done) { + sharp(fixtures.inputPngOverlayLayer1) + .overlayWith(fixtures.inputJpgWithLandscapeExif1) + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual(true, info.premultiplied); + done(); + }); + }); + + it('Composite opaque JPEG onto JPEG, ensure premultiply', function (done) { sharp(fixtures.inputJpg) .overlayWith(fixtures.inputJpgWithLandscapeExif1) .toBuffer(function (err, data, info) { if (err) throw err; - assert.strictEqual(false, info.premultiplied); + assert.strictEqual(true, info.premultiplied); done(); }); }); @@ -409,12 +407,6 @@ describe('Overlays', function () { }); }); - it('Overlay with invalid cutout option', function () { - assert.throws(function () { - sharp().overlayWith('ignore', { cutout: 1 }); - }); - }); - it('Overlay with invalid tile option', function () { assert.throws(function () { sharp().overlayWith('ignore', { tile: 1 }); @@ -580,18 +572,17 @@ describe('Overlays', function () { }); }); - it('Composite JPEG onto JPEG, no premultiply', function (done) { + it('Composite JPEG onto JPEG', function (done) { sharp(fixtures.inputJpg) .resize(480, 320) .overlayWith(fixtures.inputJpgBooleanTest) - .png() .toBuffer(function (err, data, info) { if (err) throw err; - assert.strictEqual('png', info.format); + assert.strictEqual('jpeg', info.format); assert.strictEqual(480, info.width); assert.strictEqual(320, info.height); assert.strictEqual(3, info.channels); - assert.strictEqual(false, info.premultiplied); + assert.strictEqual(true, info.premultiplied); fixtures.assertSimilar(fixtures.expected('overlay-jpeg-with-jpeg.jpg'), data, done); }); });