diff --git a/docs/changelog.md b/docs/changelog.md index 3ac8cd46..dab51843 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -30,6 +30,10 @@ Requires libvips v8.3.1 [#456](https://github.com/lovell/sharp/pull/456) [@kapouer](https://github.com/kapouer) +* Ensure ICC profiles are licenced for distribution. + [#486](https://github.com/lovell/sharp/issues/486) + [@kapouer](https://github.com/kapouer) + #### v0.15.0 - 21st May 2016 * Use libvips' new Lanczos 3 kernel as default for image reduction. diff --git a/icc/USWebCoatedSWOP.icc b/icc/USWebCoatedSWOP.icc deleted file mode 100644 index 078a6443..00000000 Binary files a/icc/USWebCoatedSWOP.icc and /dev/null differ diff --git a/icc/cmyk.icm b/icc/cmyk.icm new file mode 100644 index 00000000..7f070779 Binary files /dev/null and b/icc/cmyk.icm differ diff --git a/icc/sRGB.icc b/icc/sRGB.icc new file mode 100644 index 00000000..95e249b8 Binary files /dev/null and b/icc/sRGB.icc differ diff --git a/icc/sRGB_IEC61966-2-1_black_scaled.icc b/icc/sRGB_IEC61966-2-1_black_scaled.icc deleted file mode 100644 index 71e33830..00000000 Binary files a/icc/sRGB_IEC61966-2-1_black_scaled.icc and /dev/null differ diff --git a/src/pipeline.cc b/src/pipeline.cc index 85662f1e..a8c567ce 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -97,8 +97,8 @@ class PipelineWorker : public AsyncWorker { // Increment processing task counter g_atomic_int_inc(&counterProcess); - // Latest v2 sRGB ICC profile - std::string srgbProfile = baton->iccProfilePath + "sRGB_IEC61966-2-1_black_scaled.icc"; + // Default sRGB ICC profile from https://packages.debian.org/sid/all/icc-profiles-free/filelist + std::string srgbProfile = baton->iccProfilePath + "sRGB.icc"; // Input ImageType inputImageType = ImageType::UNKNOWN; @@ -385,8 +385,8 @@ class PipelineWorker : public AsyncWorker { // Ignore failure of embedded profile } } else if (image.interpretation() == VIPS_INTERPRETATION_CMYK) { - // Convert to sRGB using default "USWebCoatedSWOP" CMYK profile - std::string cmykProfile = baton->iccProfilePath + "USWebCoatedSWOP.icc"; + // Convert to sRGB using default CMYK profile from http://www.argyllcms.com/cmyk.icm + std::string cmykProfile = baton->iccProfilePath + "cmyk.icm"; image = image.icc_transform(const_cast(srgbProfile.data()), VImage::option() ->set("input_profile", cmykProfile.data()) ->set("intent", VIPS_INTENT_PERCEPTUAL) diff --git a/test/unit/metadata.js b/test/unit/metadata.js index b845fd67..84dd6be8 100644 --- a/test/unit/metadata.js +++ b/test/unit/metadata.js @@ -303,7 +303,9 @@ describe('Image metadata', function() { assert.strictEqual(true, metadata.icc instanceof Buffer); var profile = icc.parse(metadata.icc); assert.strictEqual('object', typeof profile); - assert.strictEqual('sRGB IEC61966-2-1 black scaled', profile.description); + assert.strictEqual('RGB', profile.colorSpace); + assert.strictEqual('Perceptual', profile.intent); + assert.strictEqual('Monitor', profile.deviceClass); done(); }); });