From c41b87303db4ced956f814f4e95485e5051d2049 Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Thu, 14 Nov 2019 11:29:45 +0000 Subject: [PATCH] Ensure trim op supports image-in-alpha #1597 --- docs/api-resize.md | 2 ++ docs/changelog.md | 3 +++ lib/resize.js | 3 +++ src/operations.cc | 16 +++++++++++++--- test/fixtures/image-in-alpha.png | Bin 0 -> 72041 bytes test/fixtures/index.js | 1 + test/unit/trim.js | 15 +++++++++++++++ 7 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/image-in-alpha.png diff --git a/docs/api-resize.md b/docs/api-resize.md index a9a76323..6c76a6f6 100644 --- a/docs/api-resize.md +++ b/docs/api-resize.md @@ -196,6 +196,8 @@ Returns **Sharp** ## trim Trim "boring" pixels from all edges that contain values similar to the top-left pixel. +Images consisting entirely of a single colour will calculate "boring" using the alpha channel, if any. + The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties. ### Parameters diff --git a/docs/changelog.md b/docs/changelog.md index 886b4936..a0803a72 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,6 +6,9 @@ Requires libvips v8.8.1. #### v0.23.3 - TBD +* Ensure `trim` operation supports images contained in the alpha channel. + [#1597](https://github.com/lovell/sharp/issues/1597) + * Ensure tile `overlap` option works as expected. [#1921](https://github.com/lovell/sharp/pull/1921) [@rustyguts](https://github.com/rustyguts) diff --git a/lib/resize.js b/lib/resize.js index 93f0ca15..0aafd5af 100644 --- a/lib/resize.js +++ b/lib/resize.js @@ -367,7 +367,10 @@ function extract (options) { /** * Trim "boring" pixels from all edges that contain values similar to the top-left pixel. + * Images consisting entirely of a single colour will calculate "boring" using the alpha channel, if any. + * * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties. + * * @param {Number} [threshold=10] the allowed difference from the top-left pixel, a number greater than zero. * @returns {Sharp} * @throws {Error} Invalid parameters diff --git a/src/operations.cc b/src/operations.cc index 9f722971..a38d3162 100644 --- a/src/operations.cc +++ b/src/operations.cc @@ -266,12 +266,22 @@ namespace sharp { if (HasAlpha(background)) { background = background.flatten(); } - int top, width, height; - int const left = image.find_trim(&top, &width, &height, VImage::option() + int left, top, width, height; + left = image.find_trim(&top, &width, &height, VImage::option() ->set("background", background(0, 0)) ->set("threshold", threshold)); if (width == 0 || height == 0) { - throw VError("Unexpected error while trimming. Try to lower the tolerance"); + if (HasAlpha(image)) { + // Search alpha channel + VImage alpha = image[image.bands() - 1]; + VImage backgroundAlpha = alpha.extract_area(0, 0, 1, 1); + left = alpha.find_trim(&top, &width, &height, VImage::option() + ->set("background", backgroundAlpha(0, 0)) + ->set("threshold", threshold)); + } + if (width == 0 || height == 0) { + throw VError("Unexpected error while trimming. Try to lower the tolerance"); + } } return image.extract_area(left, top, width, height); } diff --git a/test/fixtures/image-in-alpha.png b/test/fixtures/image-in-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..f58ca10c504557f71f231d59ccfaf7e24b9b8878 GIT binary patch literal 72041 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/index.js b/test/fixtures/index.js index 7a7dadb8..1fdd6338 100644 --- a/test/fixtures/index.js +++ b/test/fixtures/index.js @@ -87,6 +87,7 @@ module.exports = { inputPngTruncated: getPath('truncated.png'), // gm convert 2569067123_aca715a2ee_o.jpg -resize 320x240 saw.png ; head -c 10000 saw.png > truncated.png inputPngEmbed: getPath('embedgravitybird.png'), // Released to sharp under a CC BY 4.0 inputPngRGBWithAlpha: getPath('2569067123_aca715a2ee_o.png'), // http://www.flickr.com/photos/grizdave/2569067123/ (same as inputJpg) + inputPngImageInAlpha: getPath('image-in-alpha.png'), // https://github.com/lovell/sharp/issues/1597 inputWebP: getPath('4.webp'), // http://www.gstatic.com/webp/gallery/4.webp inputWebPWithTransparency: getPath('5_webp_a.webp'), // http://www.gstatic.com/webp/gallery3/5_webp_a.webp diff --git a/test/unit/trim.js b/test/unit/trim.js index ef6c6f27..118876b9 100644 --- a/test/unit/trim.js +++ b/test/unit/trim.js @@ -41,6 +41,21 @@ describe('Trim borders', function () { }); }); + it('single colour PNG where alpha channel provides the image', () => + sharp(fixtures.inputPngImageInAlpha) + .trim() + .toBuffer({ resolveWithObject: true }) + .then(({ data, info }) => { + assert.strictEqual(true, data.length > 0); + assert.strictEqual('png', info.format); + assert.strictEqual(916, info.width); + assert.strictEqual(137, info.height); + assert.strictEqual(4, info.channels); + assert.strictEqual(-6, info.trimOffsetLeft); + assert.strictEqual(-20, info.trimOffsetTop); + }) + ); + it('16-bit PNG with alpha channel', function (done) { sharp(fixtures.inputPngWithTransparency16bit) .resize(32, 32)