Skip to content

Commit

Permalink
Improve perf of ops that introduce non-opaque background #3465
Browse files Browse the repository at this point in the history
  • Loading branch information
lovell committed Dec 5, 2022
1 parent 0265d30 commit 9d760f3
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 2 deletions.
3 changes: 3 additions & 0 deletions docs/changelog.md
Expand Up @@ -18,6 +18,9 @@ Requires libvips v8.13.3
* Ignore `sequentialRead` option when calculating image statistics.
[#3462](https://github.com/lovell/sharp/issues/3462)

* Small performance improvement for operations that introduce a non-opaque background.
[#3465](https://github.com/lovell/sharp/issues/3465)

* Ensure integral output of `linear` operation.
[#3468](https://github.com/lovell/sharp/issues/3468)

Expand Down
2 changes: 1 addition & 1 deletion src/common.cc
Expand Up @@ -913,7 +913,7 @@ namespace sharp {
// Add non-transparent alpha channel, if required
if (colour[3] < 255.0 && !HasAlpha(image)) {
image = image.bandjoin(
VImage::new_matrix(image.width(), image.height()).new_from_image(255 * multiplier));
VImage::new_matrix(image.width(), image.height()).new_from_image(255 * multiplier).cast(image.format()));
}
return std::make_tuple(image, alphaColour);
}
Expand Down
2 changes: 1 addition & 1 deletion test/unit/rotate.js
Expand Up @@ -67,7 +67,7 @@ describe('Rotation', function () {
it('Rotate by 30 degrees with solid background', function (done) {
sharp(fixtures.inputJpg)
.resize(320)
.rotate(30, { background: { r: 255, g: 0, b: 0, alpha: 0.5 } })
.rotate(30, { background: { r: 255, g: 0, b: 0 } })
.toBuffer(function (err, data, info) {
if (err) throw err;
assert.strictEqual('jpeg', info.format);
Expand Down

0 comments on commit 9d760f3

Please sign in to comment.