Profiles and Windows
To accurately display colors we create an ICC monitor profile. On Microsoft Windows the profile is stored in the following directory:
The default monitor profile can be viewed in the Control Panel under Display > Settings > Advanced > Color Management. This profile is automatically loaded when the system boots. You can see a link to the program that loads the profile in the Startup folder. Right-click on the Windows Start button, choose Open All Users, and select Programs > Startup. For example QuickGamma uses QuickGammaLoader, and Eye One Display 2 uses Logo Calibration Loader.
Colors in the monitor display are controlled by a Look Up Table (LUT) that converts pixel values to calibrated display values. Red, green, and blue primaries are adjusted to yield an accurate representation. Periodic calibrations are recommended as monitor characteristics drift over time.
Color Management and sRGB
The monitor profile affects everything on the screen. It influences color managed applications, applications that aren't color managed, the display of icons, buttons, title bars — everything. The monitor profile even applies to web sites viewed by Internet Explorer.
It's a common misconception that monitor profiles only work on color managed applications. You can verify that this is not true with a simple test. Create a color profile that has gross color errors and you will see that everything on the screen, including Internet Explorer, is altered.
The default color space under Windows is sRGB. If you send pixels from an sRGB image to the screen its pixel values will be mapped by the monitor profile and display properly. If an application wishes to display an image that is not in the sRGB color space it can first convert the image to sRGB and then send it to the screen for display.
Wide Gamut Monitors
Recent LCD monitors are capable of displaying a wide gamut of colors. This is an advantage for the photographer who prefers working in a color space, such as Adobe RGB, that has a wider gamut than sRGB. With a wide gamut monitor additional colors may be accurately viewed from color-managed applications such as Adobe Photoshop.
Unfortunately Internet Explorer is not a color managed application. Even though its output is interpreted for view by the monitor profile, the fact is that Internet Explorer ignores color profiles embedded in images. In other words, Internet Explorer is not a color-managed application. It simply passes the pixels to the monitor profile as-is. The net result is off-color or super-saturated images that, in some cases, pose little resemblence to the original. This is true even if the images are sRGB (the internet standard color space), tagged or not tagged. What a fine mess we're in.
The solution for individuals with wide gamut monitors is to use color-managed applications for photo editing (such as Photoshop) and internet browser such as Firefox. Instructions for enabling Firefox color management may be found on Robertstech Media. The following images should appear identical when viewed with a browser capable of color management. Both images contain embedded profiles as indicated below.
Why are IE and Photoshop Different?
The following screen snapshots depict an sRGB image displayed by Photoshop (color managed) and Internet Explorer (not color managed). Photo courtesy of Matthew Lin.
After all this talk about sRGB being the default color space for Windows you would think that the images would be identical. Well, I left one thing out: XYZ tristimulus values. First a bit of background.
Our eyes have receptors for red, green, and blue primary colors. All other colors are composed of an additive combination of these primaries. In 1931 an experiment was done with several test subjects. A test color and an adjustable color were projected. The subjects could alter the adjustable color by varying the brightness of three primary colors. Their task was to adjust the brightness of each primary so that the adjustable color would match the test color. Based on this this experiment the CIE XYZ Color Space was defined in terms of three primary colors.
Most monitors include an XYZ set of tristimulus values that will map RGB input values to match human visual response based on the CIE standard. Older monitors referred to these values as "phosphors" in their documentation, while more recent monitors simply communicate the values directly to the computer via an Extended Display Identification (EDID) interface. The XYZ tristimulus values vary depending on monitor make and model, but remain fixed for the life of the monitor.
The XYZ tristimulus values are stored, along with LUT entries, in the profile. A color managed application will apply both LUT entries and XYZ tristimulus values. An application that is not color managed, such as Internet Explorer, will only apply the LUT entries. Typically the effect of the LUT entries can be substantial, while XYZ tristimulus values have a minimal effect. The above image was tested on several monitors and yielded results varying from no change at all to changes similar to those seen above. If your monitor's response closely resembles the CIE standard human visual response then little change will be seen.
XYZ Tristimulus Values
For accurate profiling the XYZ tristimulus values should be included in the monitor profile. If you're using a hardware calibration device and a relatively recent monitor, the XYZ tristimulus values are automatically sensed via the EDID interface and entered in the profile. Otherwise you must manually enter values furnished by the manufacturer or use their profile as a basis for further profiling.
An Unusal Case
I am the author of PTLens, software that corrects for lens distortion. A user recently reported that images did not display properly in the PTLens preview.
As PTLens is a color managed application I suspected that the XYZ tristimulus values in the monitor profile may be askew. I sent the user a copy of PTLens that was not color managed and the image displayed properly. The XYZ tristimulus values were so far out of line as to render the image useless in color managed applications. From this example we can see that it is important to have an accurate monitor profile. In this case the profile was damaged or based on invalid tristimulus values. To resolve the issue a color profile, obtained from the monitor manufacturer, should be used as a basis for further calibration.
Software developers who target Windows with the Windows API can use the following functions to convert to the sRGB color space:
To implement XYZ tristimulus values enable color management: