Skip to content

Commit

Permalink
Ensure keepIccProfile retains CMYK input profiles #3906
Browse files Browse the repository at this point in the history
  • Loading branch information
lovell committed Feb 11, 2024
1 parent fc439be commit fb70fbb
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
5 changes: 5 additions & 0 deletions docs/changelog.md
Expand Up @@ -4,6 +4,11 @@

Requires libvips v8.15.1

### v0.33.3 - TBD

* Ensure `keepIccProfile` retains CMYK input profiles.
[#3906](https://github.com/lovell/sharp/issues/3906)

### v0.33.2 - 12th January 2024

* Upgrade to libvips v8.15.1 for upstream bug fixes.
Expand Down
2 changes: 1 addition & 1 deletion src/pipeline.cc
Expand Up @@ -776,7 +776,7 @@ class PipelineWorker : public Napi::AsyncWorker {
// Convert colourspace, pass the current known interpretation so libvips doesn't have to guess
image = image.colourspace(baton->colourspace, VImage::option()->set("source_space", image.interpretation()));
// Transform colours from embedded profile to output profile
if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_ICC) &&
if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_ICC) && baton->colourspaceInput != VIPS_INTERPRETATION_CMYK &&
baton->withIccProfile.empty() && sharp::HasProfile(image)) {
image = image.icc_transform("srgb", VImage::option()
->set("embedded", TRUE)
Expand Down
13 changes: 13 additions & 0 deletions test/unit/metadata.js
Expand Up @@ -576,6 +576,19 @@ describe('Image metadata', function () {
assert.strictEqual(description, 'Generic RGB Profile');
});

it('keep existing CMYK ICC profile', async () => {
const data = await sharp(fixtures.inputJpgWithCmykProfile)
.pipelineColourspace('cmyk')
.toColourspace('cmyk')
.keepIccProfile()
.toBuffer();

const metadata = await sharp(data).metadata();
assert.strictEqual(metadata.channels, 4);
const { description } = icc.parse(metadata.icc);
assert.strictEqual(description, 'U.S. Web Coated (SWOP) v2');
});

it('transform to ICC profile and attach', async () => {
const data = await sharp({ create })
.png()
Expand Down

0 comments on commit fb70fbb

Please sign in to comment.