<p>I realized that littlecms, <a href="https://computergraphics.stackexchange.com/questions/175/how-is-an-icc-profile-embedded-or-built-into-an-image#comment247_175">suggested by <em>joojaa</em> in a comment above</a> is very complete in dealing with the ICC profiles.</p>

<p>I did a few tests in their color translator program with different destination color spaces and the differences are great as you can see:</p>

<p>Original</p>

<p><a href="https://i.sstatic.net/xe6IM.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/xe6IM.jpg" alt="Original"></a></p>

<p>sRGB-like</p>

<p><a href="https://i.sstatic.net/NbIee.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/NbIee.jpg" alt="sRGB"></a></p>

<p>adobeRGB1998 (it seems it's the original color space)</p>

<p><a href="https://i.sstatic.net/P7aGm.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/P7aGm.jpg" alt="adobeRGB"></a></p>

<p>appleRGB</p>

<p><a href="https://i.sstatic.net/iAmh5.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/iAmh5.jpg" alt="apple"></a></p>

<p>And the most desirable results in my case are within the ProPhotoRGB color space:</p>

<p><a href="https://i.sstatic.net/gp5GS.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/gp5GS.jpg" alt="prophoto"></a></p>

<p>linearProPhotoRGB</p>

<p><a href="https://i.sstatic.net/MIJk4.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/MIJk4.jpg" alt="linearProPhoto"></a></p>

<p>All of the above were following an automatic <em>rendering intent</em> but other <em>intents</em> bring slight variations (samples applied together with linearProPhotoRGB destination color space):</p>

<p>Absolute Colorimetric</p>

<p><a href="https://i.sstatic.net/ik2TL.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ik2TL.jpg" alt="ICC absolute colorimetric"></a></p>

<p>Legacy Unadapted Absolute Colorimetric</p>

<p><a href="https://i.sstatic.net/vUR7g.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/vUR7g.jpg" alt="Legacy"></a></p>

<p>I also realized that GIMP was actually restoring the original profile (not the opposite as I thought, i.e. instead of applying an embedded ICC profile, it was taking it off) and with this littlecms, now it does seem much simpler to "translate" color spaces than I thought.</p>

CC BY-SA 3.0
2015-08-16T18:15:33.757Z
2015-08-16T18:15:33.757Z
2017-04-13T13:00:43.660Z
Armfoot
<p>If I were to analyze or change an <a href="https://en.wikipedia.org/wiki/ICC_profile" rel="nofollow noreferrer">ICC profile</a> embedded in an image, how should I proceed?</p>

<p>I'd also be glad to understand how an "end-user" is able to create these with a <a href="https://en.wikipedia.org/wiki/Tristimulus_colorimeter" rel="nofollow noreferrer">tristimulus colorimeter</a> or a <a href="https://en.wikipedia.org/wiki/Spectrophotometer" rel="nofollow noreferrer">spectrophotometer</a> and if/how this new profile can be added to a color capturing device (i.e. a camera).</p>

<p>My curiosity comes from images that were taken by a professional photographer. When I open them in GIMP, there's a pop-up referring "there is an embedded ICC profile" and if I "would like to convert the image to RGB (sRGB built-in)". I always convert all of them before using them, since the colors are slightly improved.</p>

<p>This is the image as it was provided by the photographer:
<a href="https://i.sstatic.net/Y4TQL.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/Y4TQL.jpg" alt="No ICC"></a></p>

<p>And this is after the embedded ICC profile was applied:
<a href="https://i.sstatic.net/M1Dt0.jpg" rel="nofollow noreferrer"><img src="https://i.sstatic.net/M1Dt0.jpg" alt="With ICC"></a></p>

CC BY-SA 3.0
2015-08-10T15:44:00.240Z
I would take http://www.littlecms.com/ for a spin
joojaa
CC BY-SA 3.0
2015-08-10T16:07:35.907Z
@joojaa This is great! They actually say: "lcms is a CMM engine; it implements fast transforms between ICC profiles". And by their trial of the professional solution, they provide a lot of options ("input for RGB, Gray, and CMYK spaces", "intents", "destination color space", etc.)... I never imagined that it could be so vast.
Armfoot
CC BY-SA 3.0
2015-08-10T16:08:51.743Z
The [international color consortium](http://www.color.org/index.xalter) defines 4 transformation intents for the colors that can not fit the gamut, read the tutorial.
joojaa
CC BY-SA 3.0
2015-08-10T16:13:02.087Z
@joojaa actually, in their own program they have a small description associated to all of the 7 types of "rendering intents" we can choose from when converting.
Armfoot
CC BY-SA 3.0
2015-08-10T16:33:24.357Z
hey allow for more intents and different white point/ blackpoint combinations. (adobe thus has 3*4 intents)
joojaa
CC BY-SA 3.0
2015-08-10T16:44:22.730Z
@joojaa I am impressed with the quantity of destination spaces they provide, for the conversions I tested there are shocking differences when ProPhotoRGB is used, [it's very hard to tell the differences when different intents are applied though], EDIT: in some situations intents are also very noticeable.
Armfoot
<color><color-management>
How is an ICC profile embedded or built into an image?
Armfoot
# How is an ICC profile embedded or built into an image?

(Asked by: username_0 on 2015-08-10)

If I were to analyze or change an [ICC profile](https://en.wikipedia.org/wiki/ICC_profile) embedded in an image, how should I proceed?

I'd also be glad to understand how an "end-user" is able to create these with a [tristimulus colorimeter](https://en.wikipedia.org/wiki/Tristimulus_colorimeter) or a [spectrophotometer](https://en.wikipedia.org/wiki/Spectrophotometer) and if/how this new profile can be added to a color capturing device (i.e. a camera).

My curiosity comes from images that were taken by a professional photographer. When I open them in GIMP, there's a pop-up referring "there is an embedded ICC profile" and if I "would like to convert the image to RGB (sRGB built-in)". I always convert all of them before using them, since the colors are slightly improved.

This is the image as it was provided by the photographer:
[![No ICC](https://i.sstatic.net/Y4TQL.jpg)](https://i.sstatic.net/Y4TQL.jpg)

And this is after the embedded ICC profile was applied:
[![With ICC](https://i.sstatic.net/M1Dt0.jpg)](https://i.sstatic.net/M1Dt0.jpg)

**Tags:** color, color-management

> **Comments:**
> **username_1**: I would take http://www.littlecms.com/ for a spin  
> **username_0**: @username_1 This is great! They actually say: "lcms is a CMM engine; it implements fast transforms between ICC profiles". And by their trial of the professional solution, they provide a lot of options ("input for RGB, Gray, and CMYK spaces", "intents", "destination color space", etc.)... I never imagined that it could be so vast.  
> **username_1**: The [international color consortium](http://www.color.org/index.xalter) defines 4 transformation intents for the colors that can not fit the gamut, read the tutorial.  
> **username_0**: @username_1 actually, in their own program they have a small description associated to all of the 7 types of "rendering intents" we can choose from when converting.  
> **username_1**: hey allow for more intents and different white point/ blackpoint combinations. (adobe thus has 3*4 intents)  
> **username_0**: @username_1 I am impressed with the quantity of destination spaces they provide, for the conversions I tested there are shocking differences when ProPhotoRGB is used, [it's very hard to tell the differences when different intents are applied though], EDIT: in some situations intents are also very noticeable.  

---

## 1 answers

### Answer by username_0 on 2015-08-16. Score: 2

I realized that littlecms, [suggested by *username_1* in a comment above](https://computergraphics.stackexchange.com/questions/175/how-is-an-icc-profile-embedded-or-built-into-an-image#comment247_175) is very complete in dealing with the ICC profiles.

I did a few tests in their color translator program with different destination color spaces and the differences are great as you can see:

Original

[![Original](https://i.sstatic.net/xe6IM.jpg)](https://i.sstatic.net/xe6IM.jpg)

sRGB-like

[![sRGB](https://i.sstatic.net/NbIee.jpg)](https://i.sstatic.net/NbIee.jpg)

adobeRGB1998 (it seems it's the original color space)

[![adobeRGB](https://i.sstatic.net/P7aGm.jpg)](https://i.sstatic.net/P7aGm.jpg)

appleRGB

[![apple](https://i.sstatic.net/iAmh5.jpg)](https://i.sstatic.net/iAmh5.jpg)

And the most desirable results in my case are within the ProPhotoRGB color space:

[![prophoto](https://i.sstatic.net/gp5GS.jpg)](https://i.sstatic.net/gp5GS.jpg)

linearProPhotoRGB

[![linearProPhoto](https://i.sstatic.net/MIJk4.jpg)](https://i.sstatic.net/MIJk4.jpg)

All of the above were following an automatic *rendering intent* but other *intents* bring slight variations (samples applied together with linearProPhotoRGB destination color space):

Absolute Colorimetric

[![ICC absolute colorimetric](https://i.sstatic.net/ik2TL.jpg)](https://i.sstatic.net/ik2TL.jpg)

Legacy Unadapted Absolute Colorimetric

[![Legacy](https://i.sstatic.net/vUR7g.jpg)](https://i.sstatic.net/vUR7g.jpg)

I also realized that GIMP was actually restoring the original profile (not the opposite as I thought, i.e. instead of applying an embedded ICC profile, it was taking it off) and with this littlecms, now it does seem much simpler to "translate" color spaces than I thought.


---

