Last Updated: 22/11/2020

about icc colour profiles

ICC profiles explained

about icc colour profiles

Here you'll find information on what ICC profiles are, descriptions of the basic types, an explanation of why they are important to you and info about how they are made and used.

Simply put - a good ICC profile provides an accurate description of the characteristics of a digital device or working colour space.

sections below
why are accurate ICC profiles needed
RGB working spaces
input profiles, for cameras and scanners
the monitor display system profile
output profiles, printing
profiling the printing press
how profiles work - some in depth explanation
making a printer profile, more detail
free profiles
does everyone need good ICC profiles

copyright neil barstow: pismo beach dunes

why are accurate ICC profiles needed?

In the chain of capture or scan > view > edit > proof > reproduce, there may be restrictions due to equipment capability, i.e. limitations to the range of colour and tone which any specific digital device can handle capture, display or reproduce, this range is known as a device's "effective gamut". Accurate description of device gamut is one very important function of an ICC profile.

No matter how carefully devices such as display screens and printers are manufactured, there are inevitable small variations, even from the same production line.  Added to this is the problem of mixing devices from different manufacturers or production lines.  So each device might interpret the numbers in an image file differently and if we don't take control each device is likely to produce differing colour and tone from that intended. 
Ideal working practice requires an automatic way of describing the capabilities of each digital device and a mechanism to compensate for the performance of each. With the right settings, the colour management system fulfills this need by using each device's ICC profile and its ability to unequivocally* and accurately describe device capabilities. The colour management system can now properly translate digital data between devices using those ICC profiles in order to maintain appearance, within limits of device capability, of course.
Fortunately there are many excellent measuring tools and software which allow us to make accurate ICC profiles for our various devices.
*Unequivocal / Unequivocally are vital terms in colour management, basically they mean:  leaving no doubt, clear, unambiguous.


the UGRA FOGRA "Media Wedge", used to check profile accuracy in proofing.

The Media Wedge, above, allows comparison of printed colour on a proof directly with a press reference, so can guarantee a match from proof to press.

RGB working spaces are device independent

An RGB working space is a specific type of colour space, defined by its ICC profile, it is effectively the hub of many profile based conversions. A basic bit of advice, no NOT set your Adobe Photoshop RGB workingspace to the display profile. Please read on - for info on the need for and reason for working colour spaces.

Back in the late 1990's, with Photoshop 5, Adobe introduced an invaluable concept to its users, the RGB working space. These "device independent working spaces" are designed to be used for editing and storage or archiving of images. Unlike printer, scanner, camera or display screen profiles, working spaces are not used to describe specific devices.

converting image data between colour spaces, more detail

Converting image data from an input colour space (e.g. "camera.icc" or "scanner.icc") to a working space ("workingspace.icc") will re-align the often non-linear (wonky*) RGB numbers, so that the editing process is more predictable. Appearance is normally unchanged by this conversion, as long as the working space has sufficient volume to enclose the incoming data. Working space choice is a very important part of a workflow, which should ideally be designed to preserve all of an image's data.

*Wonky? Whereas a device colour space is often non-linear, an RGB working space is both grey-balanced and perceptually uniform. These qualities mean that when editing different regions of colour and of tone, i.e. saturated or pastel, dark or light, results will be consistent and predictable. What's more, a set of matching RGB numbers will always equal neutral grey, right from RGB 0,0,0 to RGB 255, 255, 255. This important feature allows for easy one-click neutralisation of global colour casts in many images. Linearity of behaviour in editing is vital if the process is to be predictable, this is hardly ever the case if working within a device based colour space.


Each working space is designed to encompass a specific range of colour values (illustrated right in a simplified two dimensional projection), the designed range or "gamut" is often relative to a particular group of image sources or image destinations. However, do remember that working spaces have no direct relation to any specific device, hence the term "device independent working space". It is worth noting, too, that bigger isn't always better when it comes to working space choice, in fact choosing too big a working space for your workflow can create issues. It's important, therefore, that workflow is tested and a working space is carefully selected.

In summary, the RGB working space functions as a container for tonal and colour data independently of any specific device. A well chosen working space will be large enough to contain all the image data from a particular source, be it camera or scanner.

Working Spaces, use in image storage & archiving 

When a file is being edited in Photoshop it will ideally be kept in a properly suitable RGB working space.
As well as predictable editing, this practice also offers future-proof repurposeability. Archiving all the original image tonal and colour information within a suitably sized working space, rather than, say, data converted to a printer colour space, allows scope for repurposing to take advantage of future improvements in imaging; perhaps a novel printing process of the future will allow far more of the original colour to be reproduced than with today's technology.
For example, imagine finishing the editing of a beautiful image, at this time perhaps only intended for use in newsprint, apart from the inevitable colour and tonal edits to suit the restricted colour range available, at some stage the image data will need to be converted into the newspaper's colour space (e.g. news.icc) so that it will suit the printing process. Maybe the operator inadvisedly saved this converted version over the original image - thus, only retaining the news.icc version, a pretty unsaturated CMYK file. 
Sometime in the future, this same image may unexpectedly be wanted for a job where original gamut could be well utilised. What if that newspaper image actually turned out to be of a popular subject, maybe now, you'd like a big inkjet print for an exhibition. The inkjet printer would likely be able to do a great job of reproducing your lovely original scene, since the process has a pretty good colour gamut. However, because you now only have the news.icc file, all that can be printed is a large version of the de-saturated picture. You can, of course, add saturation, but you can't bring back the subtlety, detail and beauty of the original. If a version of the image stored in a decent sized working space had been archived, you'd be in a much better position. It would have been repurposeable. That's why working spaces are important as storage colour spaces.
Also note that ANY CMYK file will likely have had its gamut reduced from the original RGB, so, where possible, always  archive an image as RGB, within an RGB working space. Not just the CMYK conversion. Preferably save as an uncompressed format like .tiff or .psd, certainly NOT as a JPEG, since the JPEG can't even be resized without further damaging compression.

Example Working Spaces
AdobeRGB(1998).icc, intended to encompass most of the colours found in a photographic image on film, but a little restricted for that purpose.

sRGB Color Space Profile.icc, designed to contain all the colours we can expect to see on an average PC monitor.

Chrome Space 100, J. Holmes.icc, meticulously designed to enclose virtually all the colours an Ektachrome film can record.
Please scroll down the downloads page to find "workflow tools for sophisticated photographers and retouchers where you can learn more about Joseph Holmes' working spaces.


The working colour space sits at the centre of colour management. Each relationship with an external device, be it a scanner, monitor screen or printer, is provided for via an ICC profile which describes each device and thus allows translation between a working space and the various devices.

input profiles, for cameras and scanners

Input profiles are a type of device colour space. Digital cameras and scanners are profiled in a different way to printers, one similarity, though, is that much of the process depends on suitable software settings and repeatability. In order to make an input profile, the camera or scanner is set to a repeatable state and a physical profiling target is captured as an image which is then analysed.


For cameras, a suitable target would be the basICColor DCAM or ColorChecker SG (pictured). 
For scanners a high quality target would be a HutchColor Target, "HCT", or, for less critical processes, an IT8 style target, either transparency or reflective.


First the target is carefully captured using good repeatable software settings.

Next, the captured target image values, expressed as RGB, are evaluated within the profiling software and a transformation table is created, which provides for translation between RGB device values and the known L*a*b* values sourced from the target reference file. This means that now any RGB value in a file from the relevant input device can be cross referenced against unambiguous vales related to human vision.

This ICC input profile can now be used when opening any capture or scan made using the "profiled" device as long as the device remains consistent. The ICC profile will effectively filter out consistent undesirable device characteristics like a caste or tonal anomaly. 
In practice, the ICC profile is assigned to each capture or scan and this action provides an imaging application like Photoshop with the information needed to interpret the file's numbers, including the ability to produce accurate appearance on screen. Accurate screen display is achieved in a transformation or "conversion" using the input profile, the display profile and perhaps also a working colour space profile.

An accurate ICC input profile can certainly save some work by minimising the repetitive editing tasks often necessary to correct consistent digital camera or scanner variations.

A good input ICC profile is also used by colour management savvy RAW processing or scanning software to provide an accurately colourmanaged screen display during the process of capture. This provides the advantage of continuity of image appearance from the capture application to, for example, Photoshop.
If we are to utilise the sometimes excellent colour and tonal editing tools available in RAW processing or scanner software, it is imperative to use good ICC profiles - so that, ideally, any image optimisation we’ve done using input software will still be valid once viewing the image in Photoshop.
Without good colour management, appearance is unlikely to be continuous between applications, i.e. although optimised within scan or capture software, the image might then seem to change significantly once saved and then opened in Photoshop. In this case it can be a matter of starting again with adjustment, quite a waste of effort and time.
more about input profiling and my profiling service here

the monitor display system profile

Discus_SE basICColor display 5 verification reportDisplay profiles are a type of device colour space. Monitor display profiles are part of what is perhaps the most important colour management of all, since the display screen is our only window on digital content. Display system profiles are made in a process which uses an accurate screen sensor like basICColor's discus device pictured here - and good software like basICColor Display (right) to assess the display system capabilities and build the ICC profile which describes them.
In a standard display system the first step in the process calibrates the system, loading a Look Up Table ("LUT") to the systems video card - step two then measures calibrated appearance to produce an ICC profile.
Hardware calibrated displays are similar in practice, but, in the background, the calibration LUT is actually loaded straight to the screen's internal circuits which operate at a higher bit depth to optimise the transformation of image data during display.
(only the calibration software can load that LUT, beware switching profiles in any other way). 
On completion of the process, the resulting ICC display profile is built, containing both the calibration instructions for the computer's video card (where relevant) and the device characterisation table used by a colour-management savvy application like Photoshop to correctly display image files.
Good calibration and profiling software will provide a wide range of calibration target settings which are used in order to tune and optimise screen appearance, these options are vital since e.g. optimal targeted luminance and white point are set relative to work room lighting conditions.
Above right: basICColor Display Software verification screen.



output profiles, printing

TC918 Colour ChartOutput profiles are a type of device colour space. Let's start with an inkjet printer; this is profiled by first choosing suitable options from amongst all the available settings in the printer's RGB driver or CMYK RIP software. Options such as resolution and media type can all affect output, so must be optimal.
Next, test prints of a relevant set of colour patches are made, using the chosen software settings and using the correct paper and ink.
After drying, accurate measurements of the test prints are made using a high quality spectrophotometer device.
Next, these measurements are analysed within the profiling software and, in a process of assessing both the measured patch values and the target reference data, the software can produce an accurate device characterisation - an ICC output profile.
Now, Adobe Photoshop, and other colour management capable programs, can use this ICC profile to adjust image data, as it is sent to the printer. This means that we can expect an accurate reproduction of the original image file, within the limits of gamut of the printer and paper chosen.

An ICC printer profile is specific to one certain printer, one type of paper, one inkset and, even, to one print resolution and media setting. If you buy a different make of ink or type of paper, or alter software settings, then the printer will likely behave differently, this inevitably means that the profile we made will no longer describe the printed behaviour. So, now, the process of printing using the ICC profile fails to give an accurate printout. A new profile would be needed in order to assess the printer's new behaviour. 
The need for consistency is often called "process control".

Because of the importance of consistency, it is not a good idea to use low cost "compatible" ink cartridges when profiling, because the vital continuity of performance using those inks is very unlikely - due to poor quality control, they often differ, one to the next.

As well as on-site profiling, we also offer remote inkjet profiling, here.


softproofing, proofing on a monitor display system

Good printer profiles can also be used within colour management savvy applications like Adobe Photoshop for on-screen softproofing in order to predict printed output. Softproofing means that a screen preview, simulating the output of a printer, can be viewed during image optimisation.
Of course, accuracy in softproofing relies entirely on having a decent quality, well calibrated and profiled, display system as well as a good accurate output (printer) profile.

press profiling

ECI_2002_randomIn a very similar process to that outlined above for inkjet printers, (i.e. optimise, print, measure, run in a constant state) a printing press can be profiled too. However, it is important to understand that profiling a press properly is quite a big task. It's very important to analyse a press for profiling in a well optimised state, that can take a lot of time. 
Printing press ICC profiles are vital as they are used for conversion (separation) of RGB files to CMYK, also for both printed proofing and softproofing. There is no "just use CMYK" any longer, each press type and paper type has it's own ink recipes and those are respected in the freely available standards based profiles.
So, there is a more practical way to work than by than profiling each press individually. Almost all presses can be run in accordance with specific ISO standards, which means that RGB to CMYK separations no longer need to be made for each specific press machine. What is on the plates is easier to work with which makes for faster more efficient use of the machine.

Standards based ICC profiles result from standard press runs measured by technical experts - "standard" press ICC profiles are available freely. These ICC profiles are available from the European Colour Initiative
More information about pre-press and standards based working here.

Checking ICC profile accuracy, a high quality well controlled visual test is the ultimate way I feel more on testing display and print profiles here.

how profiles work - some in depth explanation

There’s some science in here in the tech box, and it’s not necessary to fully understand this section, but many users find it helpful to have at least a basic knowledge of the workings of ICC profiles, so they cease to become quite so mysterious. 
ICC profiles are vital because the RGB and CMYK values in any digital file have no unequivocal* values unless associated with an ICC profile. Once a profile is associated (or "assigned" in Photoshop terminology), then the relationship between the file's numbers and human vision is established. (i.e. RGB or CMYK can now be converted using either of the scientifically defined unequivocal human vision based colour spaces XYZ or L*a*b.) 
*Unequivocal means: leaving no doubt, clear, unambiguous, a useful term in colour management.

An example: the RGB values R=10, G=100, B=10 have no meaning by themselves other than the colour is greenish. That's because the actual colours of the constituents, Red Green and Blue are not defined. By associating a colour space definition, (i.e. by assigning and embedding an ICC profile) the same RGB values are translated into XYZ or L*a*b giving the values an exact meaning related to human vision. The data can now be a passed off to a display screen or to a printer in a process that uses those exact colour definitions - terminating in a conversion to optimise the data for the receiving device.
Having a set of RGB or CMYK values associated with a defined colour space (as in "with an embedded ICC profile") allows for the exact reproduction of the colour.

about L*a*b* and XYZ colour spaces

You’ll hear mention of these colour spaces and their use as way of defining colour, when you're getting into understanding ICC profiles. So, what are they? Both L*a*b* and CIE XYZ colour spaces are designed to encompass human vision. These colour spaces define colour using a full scale, based upon how humans see colour, so that a particular set of values always means the same colour. As you learned above, RGB and CMYK don't work like that. 
CIE L*a*b* (normally named just L*a*b*) colour space is based on the CIE 1931 XYZ colour space, formulated to contain the whole range of colours and tones visible to the human eye and referenced by numbers that provide unequivocal colour meaning. The CIE XYZ color space was derived from a series of experiments done in the late 1920s, experimental results were combined into a specification from which the CIE XYZ color space was derived.
In summary, XYZ and L*a*b* numbers are unequivocal. Unlike numbers in the RGB or CMYK colour models, L*a*b* and XYZ numbers have an actual meaning
L*a*b*: L*= lightness axis, a = Green to magenta axis, b = Blue to Yellow axis.
XYZ: Y is luminance. Z and X are related to human cone response curves.
There are lots of papers online for those who'd like to delve further but that's certainly not needed in a quest to better understand how ICC profiles work in practice. Just appreciate that XYZ and L*a*b* define colour properly, unequivocally.


ICC profiles

Adobe RGB 3D plotAny ICC profile contains one or more tables to allow calculation between “device colour space” ICC and XYZ or L*a*b colour space, or the inverse.
Even a working colour space like AdobeRGB(1998).icc (3D pic. right) is treated as a "device colour space" in this scenario. Some ICC profiles do contain quite a few tables to allow for conversion using different rendering intents, but, basically, all those tables do is to provide for variants on the above calculations.
L*a*b* or XYZ are used in ICC profiles as the Profile Conversion Space or P.C.S. - because they are unequivocal, each numerical value in either XYZ or L*a*b defines a single colour relative to human vision.

Basically, the following describes the way the profiles are used in an RGB or CMYK print conversion
A: “document” (perhaps an image) RGB or CMYK converts to XYZ or L*a*b
- then -
B: XYZ or L*a*b converts to printer RGB or CMYK.

Liken this to translating a word from French to German without access to a French to German dictionary.
If you had a French to English dictionary and an English to German one you could do it in two steps:
A: Translate from French to English  
- and -
B: Translate from English to German.
In this example English is acting as the “conversion space”, the P.C.S.

When a conversion between two colour spaces takes place we are normally offered a choice of rendering Intent. For output conversions all the intents, Perceptual, Relative Colorimetric, Absolute Colorimetric and Saturation are all available within the process and will affect the result. However, when converting from an input colour space to working space, although Photoshop offers the options above, all that's actually available is a form of Colorimetric rendering. There are some important implications to this because image data can be clipped during the conversion process which may happen unnoticed in the background. Issues arise especially if the working space is not large enough to contain all the image data which happens all to often. Disappointment with image quality, especially in detail in dark, light or saturated areas may result and, although this may be thought an inevitable part of the process, there are sophisticated ways of controlling it. Taking control of this, by careful working space selection and properly managing the process, is something I provide training in.

making a printer profile, in detail

In an attempt to make a description of the ICC print profiling process easy to comprehend, many writers, myself included, have alluded to a process of comparison between printed results and the actual desired appearance of the patch file. That's not entirely wrong in spirit, but, technically, calculating an ICC profile is NOT a process of comparison of printed (output) to patch values. This is because the patches actually have no "ideal" appearance (i.e. no L*a*b* values - please read on to understand that better). The ICC profile does have an ability to adapt colour data (perhaps in an image) before printing and, thus, the result is printed material that compares well to desired or “correct” appearance. SO, good comparison is the end result, but comparison’s not included in the actual process of making the ICC profile.

In practice, L*a*b* measurements of the printed patches are analysed within the profiling software and, in a process of assessing how the measured patches (measured in L*a*b*) relate to the target reference data (expressed as RGB or CMYK), the profiling software can produce an accurate device characterisation - a table for calculation between L*a*b* and RGB or CMYK, which is used in the ICC output profile. 
You read earlier that RGB and CMYK values are ambiguous, because the primaries are not defined, well, here in the printer profile, the ambiguous file values of the target are made unequivocal by the table calculating between printed output and target values.

The ICC profiling process involves a few steps, which are worth explaining

1: set-up printer and print a file with RGB or CMYK patches

Epson 7900 printerIt's vitally important at this stage that either the printer control software (i.e. driver or RIP) settings or press adjustments (CTP tone curves, ink weights etc.)  are chosen properly; often this ideal machine state is reached as a result of a process of step-by-step testing of various options. This method optimises the process. Thereafter, those same settings must be used whenever the profile is to be used. Consistency is king, machine behaviour must be invariable.

So, what are we printing in this patch file? The RGB or CMYK patch data in the image file is allowed no embedded ICC profile, so it has no associated L*a*b* or XYZ "visual" values and nothing to inform a conversion to L*a*b* or XYZ, thus, there is no way that its values can actually be related to a visual colour meaning. The file data has no unequivocal appearance, the numbers are ambiguous.
How can we see patches on screen then? On screen display of patch files is, as default, made using a "guess"** as to document colour space.

We must not assign an ICC profile to patches in practice, because it could invalidate the printing process. We need raw CMYK or RGB patch data printed. 
But, if an ICC profile were assigned** to the file with the patches, then the colour management process would provide L*a*b* or XYZ values for each patch and, this information, passed through the monitor profile, can provide what is shown on screen with a visual appearance. So we have now given those patches "unequivocal" values - but this is only one possible appearance, one interpretation for the values of those RGB or CMYK patches, because if a different ICC profile was assigned to the patch file, then the visual appearance would change, (this happens because the calculated L*a*b* or XYZ values would change).

**In Photoshop and similar applications, when an image without an ICC profile is displayed, the L*a*b* or XYZ data normally provided by a profile is missing. So, it's not possible to send the data through the screen profile to the screen - therefore, to allow display, Photoshop assumes (i.e. temporarily assigns, for viewing only) the default working colour space profile – just so the file can be shown on screen. This doesn't affect the printing process, but it does explain why the file appears to have a set appearance on screen.

2: measure the printed target

X-Rite i1 iSis XL

The printed patch set is measured using an accurate spectrophotometer.
As you read above, after printing and reading the target no comparison to anticipated results is actually made, because there is no anticipated result for the printed patches.
So, what does actually happen?

3: calculate the profile

Colorimetric values in XYZ or L*a*b* result from the measurement of the printed target. Reference data for the patch set containing the original RGB or CMYK values for each patch is used, in conjunction with those measured values, to calculate and build the “device values to XYZ or L*a*b*” table which is part of the ICC profile, this is called the A2B transformation table. This table simply describes the printer to software, so that the system "knows": “What happens if I send particular RGB or CMYK numbers to printer - what actual colour (what visual appearance) will result”.

This table A2B is not actually the part of the output profile used when converting a file to print it, it’s an “inversion” of that table - into an XYZ or L*a*b* to device transformation table, called the B2A, that provides the information needed for this important transformation. What the system can learn from this table is “I have read the profile of a pixel in the image, so now I have an XYZ or L*a*b* value to print; what RGB or CMYK numbers do I need to send to the printer to get that appearance?”

Pixl_CMnet_Test_imageUsing the printer profile, printing

When selected in an imaging application like Photoshop, the printer's ICC profile provides a prediction, which is used, along with the document profile, to work out how to alter each of the document file's pixel values to get a print that looks like it should. That is, it should closely match the source image shown on a calibrated and profiled display screen, or another print from a profiled workflow.

It works like this, document RGB or CMYK is converted to XYZ and then XYZ is converted to device RGB or CMYK.

As well as on-site profiling, I also offer remote inkjet profiling, here.

Using the printer profile, softproofing

Good printer profiles can be used in on-screen softproofing in order to predict printed output on a well set up monitor screen. This useful output preview process is available in Photoshop and some other imaging applications; softproofing provides a screen preview, simulating the output of a printer, which can be viewed during image optimization. Of course, accuracy in softproofing relies on having a decent quality, well calibrated and profiled, Display System and a good accurate output (printer) profile. Without going too deep, the process involves the original file's values passing "through" the printer profile en-route to the display profile.

document RGB to XYZ or L*a*b*-and- XYZ or L*a*b* is converted to printer RGB (or CMYK)
printer RGB (or CMYK) to XYZ or L*a*b*-and- XYZ or L*a*b*  is converted to display RGB

using a camera or scanner ("input") profile

colorchecker_SGThe ICC input profile is used to compensate for consistent issues in the capture or scanning process. The relevant ICC profile is assigned to the image when opening any original capture or scan. In many software applications, the profile can be assigned and embedded automatically. Assigning the ICC profile to an incoming image provides for accurate appearance on screen through a transformation using the input profile and display profile - and, often, also the chosen working colour space profile.

In initial display on screen, once the device ICC profile is assigned, each pixel in the RGB image file is
A: transformed to XYZ or L*a*b* - and then - 
B: XYZ or L*a*b* is transformed to monitor space RGB ICC.

In most cases device RGB is converted to a working space first, so
A: device RGB to XYZ or L*a*b* - and - 
B: XYZ or L*a*b* is converted to working space RGB ICC.
- then -
C: working space RGB ICC is converted to XYZ or L*a*b*- and - 
D: XYZ or L*a*b* is converted to monitor space RGB ICC (or even printer colour space ICC if printing at this stage).

Much of this is dealt with automatically in a well set-up system.

profiles for free?

Unfortunately, however well intentioned they may be, ICC profiles supplied with products or found around the internet which might claim to accurately represent a particular device can often be quite poor. Since each individual device may differ, these “canned” or generic profiles are sometimes only useful as a starting point. In some instances the provider even fails to provide instructions on device settings for use with their profile.
Making a profile from one printer and attempting to use that same profile on a different printer, even if it’s the identical printer model using identical paper and inks, is unlikely to provide identical or accurate results.

Success with colour management relies on good device characterisation, provided by ICC profiles and on consistency in devices and working methods.

does everyone need good ICC profiles?

In even the most basic workflow, if the aim is to view images with true colour, we need a monitor profile and a document (image) profile in order to accurately view that image. So, yes, anyone viewing images on a computer monitor screen needs decent ICC profiles.

Checking ICC profile accuracy, a high quality well controlled visual test is the ultimate way I feel more on testing display and print profiles here.

Do you need help with the above? You can get in touch for free chat, just follow the link to my free consulting page.

back to the top of the page