I: Stating the problem
Suppose you took a picture, and you want to print it out. The color might be accurate on your computer screen, but not so right when you print it out. It might be too dark or maybe not saturated enough.
This is the most basic color management problem. Things look different on the screen than on a printout. Got it? Good. :-)
So the screen and the printer each have a different 'color profile,' which is why the image appears different when you print it out. That is, a given value for, say, green, might appear one way on the screen, and a different way on the paper. Or perhaps the printout looks washed out in comparison to the screen image, or maybe darker.
Now, in either case, you're starting with the same data: your original picture. So the example of a picture that's different on screen from the printed page brings us to the real problem: Different representations of the same color data.
Meaning: The screen takes the image data and displays it in one way, while the printer takes the same image data and displays it another way. And that's the most basic way to state the problem.
Got it? Good. :-)
II: Stating a solution
We've got an image, which a screen will display one way, and a printer will display in another. That's our problem. To solve it, we can consider: If these differences are consistent, and we know what the differences are, then we can alter the color data depending on how we want to show the image.
So if we want to display the image on a screen, we change the data to be more accurate on a screen. If we want to print the image, we change the data to be more accurate on paper.
This means we have three things: 1) The image, 2) a way to change the image for display on the screen, and 3) a way to change the image for printing. Since we have these three things, we can be reasonably sure that colors are accurate no matter whether we show the image on the screen or print it out.
Got it? Good. :-)
Now, since we're talking about computers, we can get the computer to do this for us automatically. Software that does this is called a 'color management system.' On Mac OS X (and previous versions going back to System 7), there's a color management system called ColorSync. In Windows Vista, there is the Windows Color System. Previous Windows systems have Windows Image Color Management. Linux has a few CMS, including Little CMS, or lcms.
So the software can change the color data to be more appropriate for whatever output you're using. It can take the original image and make it look right on the screen, or the printer, because it knows the difference between the original color data, and the way things should look on either device.
How does it know? That's a very good question. It uses profiles. A profile is a file that lives on your computer and serves the function of describing how to change the color data for output on a particular device.
Meaning: When ColorSync (or whatever other CMS you're using) wants to know how to change the color data in order to print an image on your printer, it consults the printer's profile. The profile tells it what to do. The more accurate the profile, the more accurate the picture will be.
It just so happens that in the mid '90s, the International Color Consortium was formed to address this issue of color matching in digital media. And they created a standard for these profiles. That is, if two different CMSs both support the ICC standard, then a given ICC profile should work well with either one.
So, to sum up, we've got: 1) An image, 2) a profile for your computer's screen, 3) a profile for your printer, and 4) a color management system to do the math and make everything look right.
And that's the most basic thing you need to know about color management.
Of course there are more complex issues surrounding this, but the goal in this article is to be as basic as possible.
Got a question? Ask it.