Color Management and ICC Profiles

Why the same hex code lands on a different color on two screens, what a profile actually stores, and which links in the chain you can control.

Short answer: a color number is an instruction, not a color. #B23A48 tells a device how hard to drive three channels, and every device answers differently. Color management fixes this by pairing each device with a profile, a written description of what that device's numbers really produce, in a format any application can read. The format is published by the International Color Consortium as ICC.1 and adopted as an international standard, ISO 15076-1. The system then translates device numbers into a shared reference space and out again on the far side.

The problem, stated precisely

Send the triplet (178, 58, 72) to two monitors. The first has a slightly bluer white point and a wider red primary; the second is five years older and its blue channel has aged. Both display something reddish. Neither displays the same color, and neither is wrong, because the triplet never said what color it wanted. It said how much of each of this device's primaries to use.

Numbers of that kind are called device dependent. Their meaning is defined by the hardware that receives them. The opposite is a device independent description: coordinates in a space defined by measurement of human color matching rather than by any machine, such as CIE XYZ or CIELAB. Those coordinates name a color the way a latitude and longitude name a place, so two people in different rooms can agree on what was meant.

Color management is the machinery that gets you from the first kind of number to the second and back. It has exactly three moving parts: a profile for the source, a profile for the destination, and a module that does the arithmetic between them.

What a profile actually contains

A profile is a binary file with a fixed header and a set of tagged data structures. It is not a preference or a look. It is a measurement record plus the transforms derived from it.

ElementWhat it holdsWhy it matters
HeaderDevice class, color space, connection space, rendering intent, creation dateTells the engine what kind of device this is and how to read the rest
Matrix and tone curvesThree primaries in XYZ plus one curve per channelThe compact form used by most display and RGB working space profiles
Lookup tablesMultidimensional grids with interpolationThe form used where the device is not well behaved, notably printers
White point and chromatic adaptationThe medium white and the transform to the reference whiteLets a warm paper and a cool screen be compared at all
Named intentsSeparate transforms for different reproduction goalsOne profile can carry more than one answer to "what should out of gamut become"

The shared middle ground is called the profile connection space. It is CIE XYZ or CIELAB, adapted to a fixed reference white rather than to whatever white your particular device has. Every conversion is really two conversions: source device to connection space, connection space to destination device. That is why a system with ten devices needs ten profiles rather than ninety pairwise recipes.

Calibration is not profiling

These two words get used interchangeably and they are different operations, performed in that order.

Calibration changes the device. You adjust the hardware or the graphics card lookup table until the display sits at a chosen target: a white point, a luminance, a tone response. You are moving the device to a known state.

Profiling describes the device. With the device now in that state, you measure a set of patches and record what came out. Nothing is adjusted. You are writing down where the device actually is.

A profile made before calibration describes a state the device no longer occupies, which is a common and quiet source of wrong color. Our page on display calibration basics takes the measurement side further.

Rendering intents, and why there are four of them

Destination gamuts are smaller than source gamuts in some direction almost always. Something has to happen to the colors that do not fit. The specification does not pick one answer; it defines four, and the profile can carry a transform for each.

IntentWhat it optimisesTypical use
PerceptualOverall pleasing appearance; compresses the whole gamut so relationships survivePhotographs going to print
Media relative colorimetricExact reproduction of in gamut colors, relative to the medium white; out of gamut colors are clippedLogos, brand colors, most screen to screen work
SaturationVividness over accuracyBusiness graphics, charts with flat fills
ICC absolute colorimetricSame as media relative but keeps the source white, so paper white is simulatedProofing one print process on another

The compression itself is a research area of its own. The CIE published guidelines for how gamut mapping algorithms should be evaluated precisely because vendors were each solving it differently and there was no agreed way to compare the results.

Where the chain actually breaks

Untagged files. An image with no embedded profile carries numbers and no statement of what they mean. Every consumer then guesses, and the near universal guess is sRGB. That guess is right often enough to hide the problem and wrong often enough to cause it.

Screenshots. A screenshot of a wide gamut image on a wide gamut screen captures the device numbers. Pasted somewhere that assumes sRGB, the same numbers become more saturated colors. Nothing was corrupted; a description was dropped.

Applications that opt out. Some tools honour embedded profiles, some ignore them, and a few honour them for images but not for interface colors, which is how a picture and the swatch beside it end up disagreeing inside one window.

The room. Standards for viewing conditions exist because the surround changes what you see. The same print under a warm bulb and under daylight is a different experience, and the same screen at 30 percent brightness in a bright room is not showing you what you think it is.

The observer. Color matching functions describe an average. Real observers vary, and two people with normal color vision can genuinely disagree about whether a screen and a print match, particularly where narrow band light sources are involved. This is measurable, not imagined.

What this means on the web

For a long time the honest answer for web authors was: assume sRGB and stop worrying. That answer is now incomplete. CSS Color Module Level 4 lets a stylesheet address predefined spaces directly, so a color can be specified in display-p3 or rec2020 rather than being implicitly a set of sRGB channel values. Browsers apply the destination profile when they can.

Three practical consequences follow. Embed profiles in images rather than stripping them to save bytes. Do not compare a color in a design tool with a color in a browser unless you know both are managed. And treat any color you sampled with a screen picker as a device number, not as a fact about the design, unless you know which space it was in. The details of what those hex numbers are are covered in RGB and hex color codes, and the modern notation in OKLCH and modern color spaces.

The connection to the games

Every color our games show you goes through this chain, and we do not control most of it. That is worth saying plainly rather than hiding: your scores are comparable to your own past scores on the same screen, and they are not a calibrated measurement of your visual system. The size of the difference a profile mismatch introduces is often in the same range as the differences the games ask you to detect, which is exactly why Huefork is interesting here. It measures the smallest shade difference you can see today, on this screen, in this room. Change any of those and the number moves.

If you want the theory behind that threshold, the just noticeable difference page has it, and color difference and Delta-E covers how the industry puts a number on a mismatch.

How small a difference survives your screen? Huefork narrows the gap between two shades until you can no longer tell them apart. It is the fastest way to find out what your particular display and your particular eyes can resolve.

Play Huefork →

Frequently asked questions

What is an ICC profile, in one sentence?

A standard-format file that records what a particular device's color numbers actually produce, so that software can translate between that device and any other one through a shared reference space.

Why do I need a profile if my colors already look fine?

You do not, until the file leaves your machine. The profile exists so that a second device, a printer, or another person's browser can arrive at the same color from the same numbers. On one screen viewed by one person, an unmanaged workflow can look perfectly consistent and still be undescribed.

What is the profile connection space?

The device-independent middle ground that every conversion passes through, defined as CIE XYZ or CIELAB adapted to a fixed reference white. Converting source to connection space and connection space to destination means each device needs one profile rather than one recipe per pairing.

What is the difference between calibration and profiling?

Calibration changes the device to reach a chosen state: a white point, a luminance level, a tone response. Profiling measures the device in that state and writes down what it does. Calibration first, then profiling, and a profile made before a calibration change is stale.

Which rendering intent should I use?

Media relative colorimetric for screen work and for colors that must be exact, such as a brand color. Perceptual for photographs going to a smaller gamut, because it compresses the whole range so relationships between colors survive. Saturation for flat-filled business graphics. Absolute colorimetric only when you are simulating one medium on another.

Why does my screenshot look more saturated when I share it?

The screenshot captured device numbers from a wide-gamut display. Wherever it lands, if that place assumes those numbers are sRGB, the same values are interpreted as more saturated colors. Nothing was damaged; the description of what the numbers meant was dropped.

Does the room I am sitting in really change the color?

Yes, enough that international standards specify viewing conditions for critical comparison. The surrounding light level, the color of that light, and the background around the image all shift what you perceive. A screen at low brightness in a bright room is not showing you what you think it is.

Can two people with normal color vision disagree about a match?

They can, and it is measurable rather than a matter of taste. Standard color matching functions describe an average observer, and individual observers vary around it. The disagreement gets larger with narrow-band light sources, which is one reason display-to-print matching is harder than it looks.

Keep reading

Sources: International Organization for Standardization, ISO 15076-1:2010, Image technology colour management: architecture, profile format and data structure, Part 1: Based on ICC.1:2010; Green, P. (ed.) (2010), Color Management: Understanding and Using ICC Profiles, Wiley; International Commission on Illumination, CIE 015:2018 Colorimetry, 4th edition; International Commission on Illumination, CIE 156:2004, Guidelines for the evaluation of gamut mapping algorithms; International Organization for Standardization, ISO 3664:2009, Graphic technology and photography: viewing conditions; Poynton, C., Color FAQ; W3C, A Standard Default Color Space for the Internet: sRGB; W3C, CSS Color Module Level 4, predefined color spaces; Long, D. L. and Fairchild, M. D. (2014), Modeling observer variability and metamerism failure in electronic color displays, Color and Imaging Conference 22, 14.

Understand it, now train it. The daily games stay free forever. A Personal Pass adds progress tracking (trends + export); Teacher / School tools let you assign it and follow a whole class. For teachers & self-learners →

Updated · By Lajos Toldi — educator and researcher in adaptive intelligent tutoring systems at AI24EduLabs (part of AI24Labs). Scientific claims are checked against authoritative sources; see our editorial policy.
Privacy · Cookies · Terms · About · Contact