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();
});
});