I am trying to get a grasp of the world of color management, and the more I read the more I get that this is no picnic indeed.

I believe I understand that the purpose of calibrating and profiling your monitor (in a certain ambient light) is to achieve as a true display of the photos as possible, compared to a certain "standard".

From the lab that I will use to print the photos you can download printer profiles (.icc files). I was under the impression that the goal of a printer would be to produce images as close to the "standard" as possible. Then why would you need the profiles of the printer's calibration information?

Or do the .icc files used for softproofing only contain the "distorsion" that appears when the printer has already been calibrated? That is, there is a certain degree of color shift, dynamic range change etc that you can't really calibrate away due to the properties of the paper, ink and so on, and this is what's contained in the downloadable .icc files?


I will try to explain what I'm asking in more detail. Please refer to @jrista's answers and the following comments.

What I believe has been described in the answers is the following:

  • A printer does not produce a perfect replica of the photo due to imperfections and limitations in the ink, paper etc.
  • Therefore, a profiling is performed, where a profile chart is printed and a calibration tool (spectrometer, colorimeter) is used to analyze the printer's properties. This generates an ICC file for the printer, which is a model for this transformation.
  • This ICC file is then used during soft proofing to mimic the behavior of the printer on the screen, which enables the application of manual adjustments in order to get the perfect print!

But, my confusion arises from the fact that I assumed that this ICC profile is used by the print shop to compensate for the printer's errors before printing, by applying the "inverse" ICC in software. This work flow has at least been described in internet guides on how to profile your own printer at home.

And, if this "compensation" is performed at the print shop, the same ICC would be useless as the soft proofing ICC, wouldn't it, since its "inverse" will be used at the print shop?

This leads to the last paragraph in my originial question: In that case, does the downloadable ICC contain only the printer's transformations profiled after the original profile has been applied?

I hope the question is clearer. I very much appreciate your input!

  • Have you read my answer? ;-) – TFuto Feb 18 '14 at 12:10
  • Yes. Although being a good summary of profiling in general, I'm not sure it really addresses the question. Maybe you could elaborate a bit and include info about which profile in your example is used for soft proofing? – Daniel R Feb 18 '14 at 12:25
  • My understanding is that there is no further color correction is being done in the print shop. You deliver the file to be output on the printer. The printer ICC is a mapping of virtual colors to printer colors. This clearly shows which virtual colors are mapped, and which are not - so the gamut information is there. See also the link in Michael Nielsen's answer. Basically you set the "Profile" to your output color space (the calibrated printer ICC), and that is your soft proof setup. – TFuto Feb 18 '14 at 12:36
  • 1
    Just make sure the output you create is actually a binary output that is ready to be sent on the printer and they don't open it and mess up your color flow... If you can, make a small test before the actual printout. The best is that you actually make the color chart printout, so you can verify your understanding, your environment setup and color flow, and also can calibrate the printer's ICC profile. – TFuto Feb 18 '14 at 12:41

Color management works by utilizing profiles of each device involved in the workflow in order to guide the process of translating color from one device to another. Color is not the same in every context, sometimes colors are reproduced with RGB elements and other times they are reproduced with CMYK elements (or even more colors than that, as is often the case with ink jets).

In order to accurately understand how color is produced from a source device (say a camera), and to accurately reproduce color on a printer, one must know the characteristics of those devices. Furthermore, in order to see color accurately while you are processing photos, the color management system must also know the characteristics of your computer screen.

Therefor, every device or component involved in a workflow must be identified by it's own profile. You cannot use a profile intended for use with an image (such as sRGB, AdobeRGB, ProPhotoRGB) to calibrate your screen...the screen has different characteristics. Therefor, you must produce an ICC profile for your screen, that explicitly describes its unique, inherent traits. Now, the color management system can reference say the sRGB profile your image is tagged with, and reference the ICC profile of the screen, and perform the necessary translation when rendering that image to your screen, thereby producing accurate color reproduction.

It's no different with printers. Printers are not computer screens, therefor they cannot be properly calibrated by using an ICC profile for a screen. Neither are they images, therefor they cannot be properly calibrated with the sRGB or AdobeRGB profiles. Printers must have their own profiles. With printers, it is a little more complex, because you have not only the device, but also it's inks and the papers you print on. All three of these aspects combine to require a unique ICC profile for each paper, not just the printer & ink. Hence the reason you have to find and use exactly the correct ICC profile for the type of paper you are printing on.

When it comes to softproofing, a tool like Photoshop will utilize all three profiles. It will use the image profile (i.e. sRGB) to calibrate a translation into "printer space" via the printer & paper's ICC profile. Then it will render that translated result to the screen via the screens ICC profile. This is the only way you can accurately soft proof a photo and determine if it will look as you expect in print on the chosen paper type.

Profiling for print can be even more complex. If you have a specific lighting context within which you wish to view a print, you often need to either recalibrate under that specific light, or apply a mathematical transformation to the ICC profile after it's been generated in order to correct the print color so it renders properly under the chosen illuminant. Modern higher end printer calibration systems usually offer features to support generating or using printer/paper ICC profiles for differing illuminants.

  • Thanks! Ok, so the printers are calibrated (or profiled), resulting in an ICC profile, I understand that. But this ICC profile contains (ideally) all the shifts the printer apply when printing, and is used by the printing software in order to make the print as true as possible, no? Therefore, applying this ICC when softproofing can't be a very good idea, no? Shouldn't it be the resulting output after the ICC has been applied that should be used as the filter for soft proofing? – Daniel R Feb 17 '14 at 21:13
  • The ICC profile simply contains the information necessary to translate color from a source context or to a destination context. Color is three dimensional: You have the color plane in x and y, produced by a 360° plot from red through orange, yellow, green, blue, purple and magenta. Intensity is the z axis, towards 0 is black, towards 1 is white, and in between you have all the various tones of each color. An ICC profile is simply a mapping of divergences of color for a given device, in this 3D space. A "true" pure green, as described in Lab space, would actually be some other color in... – jrista Feb 17 '14 at 21:37
  • ...print space. So, a vector, from pure green to the closest possible match in printer space is determined through the process of profiling, and that divergence is saved in the ICC profile. This is actually done for all colors through a fairly complex mathematical modeling process, and the model is what is stored in an ICC profile, so it isn't as though every possible individual color is mapped. – jrista Feb 17 '14 at 21:39
  • As for soft proofing, I'm not sure what you think it is. Soft proofing, from an ICM standpoint, is simply rendering to screen what the ICC profile of the printer generates. So, instead of rendering Image(sRGB) -> Screen(ScreenICC), you do Image(sRGB) -> Printer(EpsonHahnemuhlePhotoRagNaturalICC) -> Screen(ScreenICC). By first mapping to the printer space, what you see on screen is based on how the printer would render the image. There for, you can "soft proof" your image, and make sure that it will print correctly, with the right tonality, shadow detail, highlight detail, etc. on that paper. – jrista Feb 17 '14 at 21:41
  • My confusion arises from the fact that I thought that the print shop uses the profiling information when printing the photo. For argument's sake, let's assume that the printer totally inverts the colors (yellow -> purple, and so on). Then the calibration is done, putting the inversion transformation in an ICC. If this ICC is used by the print shop to adjust (inverse-transform) the image before printing, then the ICC would be useless as softproofing, right? The soft proofing ICC would then instead consist of the transformation of the printer, that cannot be removed... – Daniel R Feb 17 '14 at 21:45

I understand your confusion. I struggled with this a lot too, when I got a canon photo printer with a matching ICC profile, and had to ensure that both lightroom and the printer itself used the same color management. My first 20 photos turned out purple, while lightroom soft proof and the driver preview was perfect. When the preview turned out purple and soft proof in lightroom was still accurate, the print turned out perfect. As I got it, the softproof in lightroom uses the ICC profile to get the "max" and "min" of things, while the driver to the printer does the compensation to counter the printer's colour shifts before sending this new (weird looking) image to the printer (the inverse mapping).

I found a guide as to how to exploit the proofing in lightroom:

How to Exploit Soft Proofing

It is really just a way make YOU in control of how the output will be. if you send in image with out of gamut colours or brightness/darkness that will be clipped, the printer makes the choice for you. That choice should be yours.


I don't have time to cover the fulldetail right now but profiles do indeed contain two transforms ... The a2b and b2a transforms. One translates the colour space values to best matching device values. The other is the inverse of this table for soft proofing. You can edit them independently to e.g improve the soft proofing side of the profile whilst leaving the printing side as it was. To really get an idea of how profiles work, read: http://www.imagescience.com.au/pages/Colour-Management-Theory.html ... Or ideally all 6 chapters.


The basic thing to remember is that most monitors can display a larger color gamut than most printers/inks/papers can reproduce. What this means is that your monitor can display a wider range of colors in a wider range of tones (bright to dark) than a printer can reproduce. By applying a printer profile to an image before it is sent to be displayed on your monitor (soft proofing) you can see the image on your monitor in a form that is much closer to what the printer is actually capable of reproducing. You can also adjust the image's colors/tones and see a simulation of how those that are out of gamut for the printer will be converted to a color/tone that the printer is capable of reproducing so that you know what to expect when printing it.


The set of colors that a device is capable of producing are referred to as the color gamut that the device supports. When soft proofing, the ICC profile of the printer is used to understand where the color gamut of your printer and your screen intersect, such that you can get as a display as close to what the print will look like.

Everything is still calibrated based on a standard, but what you get from the printer will only be as close to the standard as the printer can create. So, for example, if the printer is lower contrast or has weaker reds than your screen, then viewing a softproof through the ICC profile of the printer will have lower contrast and faded reds.

The printer will do the best it can, but it still can't render out of gamut colors.


The monitor ICC files basically map the monitor color you see to a virtual color space that includes every possible color.

The printer ICC files map the colors from the virtual color space to actual R,G,B or CMYK channels.

Both needs to be calibrated, and these need to be calibrated independently. Also, color management works as a chain, where every element has its color management contribution.

Example. You see a yellowish color "C1" on monitor M1 which is calibrated for lower color temperature, and you see a bluish white "C2" on monitor M2, which is calibrated for higher color temperature. Each monitor has its own ICC file.

Now, both colors in the example show a simple white color "C" from the virtual color space.

So now, you want to print that. You have printer P1, which uses a bit too much blue, rendering images with a bit of bluish cast. And you have printer P2, which is well known to emit too much red. These have their ICC profiles as well.

What you want is: you work on an image on monitor M1, and do some editing. Then another colleague works on that image on monitor M2. He is in a different viewing condition. You perceive that yellowish color as white. He perceives that bluish white as white. And internally those two are actually represented with the same value, "C", the white color code.

Now you want to print the image. Obviously you have the image in this virtual color space. You want to print on P1 and P2. So you have to transform the virtual colors to the color space of P1 and the color space of P2. And on the resulting printouts., white will be the same white.

So basically you have this:

  • C1 -> ICCM1 -> VColor "C",
  • C2 -> ICCM2 -> VColor "C"
  • VColor "C" -> ICCP1 -> printout 1
  • VColor "C" -> ICCP2 -> printout 2

And by the way: your description of "standard" is true - for a VIEWING STANDARD! (Standardized environment for viewing an object or computer monitor, e.g. in a viewing booth.) It is a standardized way to map from perceived color to the virtual color. But the VIEWING standard does not say anything about further color manipulation, color domain crossing or output colors (except: there is a viewing standard for observing printouts as well, but that does not talk about the printing process).

Regarding your last question: there is no such thing as incremental ICC. That is why, before you print, you calibrate the printer. You print a test chart, you take a spectrometer, and create your own ICC profile. You can use more generic ICC profiles of a printer, but that is only true if they use the exact make of print cartridges, and that has the exact same color. If you print something that needs extreme color fidelity, you do not want to avoid your own printer color calibration. Otherwise you are just fine with generic printer ICC profiles.

  • 1
    There is a lot of misinformation here. Perceptually, a person working under a D50 environment working with a monitor calibrated to 5000K will see the same white as a person working under D65 with a monitor calibrated to 6500K. That's the whole point of standard environments. D65 is supposed to be "purer", as it compensates somewhat for reduced sensitivity in human vision at some parts of the colour spectrum, but it my experience that only matters for metamerism. One calibrates a monitor to achieve as close as possible to a "flat" response. (cont'd) – user2719 Feb 28 '14 at 4:05
  • 1
    Likewise, printers are calibrated for as "flat" a response as possible given the ink and paper used (white the paper being "white" and non-bleeding maximum ink coverage being Dmax). Additive and subtractive colour spaces are not identical, and inks aren't perfect (they're subject to the laws of physics regarding absorption/emission). Soft proofing with the printer profile shows you (within limits) the shifts that will occur on that printer with that paper, allowing you to compensate with image adjustments. The resulting RGB file (or CMYK if you do your own seps) is what you send to print. – user2719 Feb 28 '14 at 4:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.