Color Management 101: Part A
At the risk of seeming presumptuous, which I probably am, and producing flames, which I probably will, I'm going to go out on a limb and attempt here some basic description of color management, since the issue in one form or another arises in a number of threads on this forum and seems to be a source of considerable confusion. I don't profess to be a "pro" in these matters, and what follows may be a bit off in some particulars, but the basic principles are, I feel, essentially correct -- so I hope you'll cut me some slack, and I hope you'll find it useful. My favorite image-processing software is CS3 (and ACR), and so this discussion uses this as a primary basis for illustration. However, I feel sure the basic principles would apply to most typical workflows with simple modifications. Anyone wishing to chime in with corrections or additions is more than welcome. Because of its length, this is being posted in five parts, A, B, C, D, and E. Please put your gripes, comments, and replies after part E in order to keep the original 5 posts together.
0. INTRODUCTION: There are five basic color spaces that are of importance to those who use dSLRs and who display to a printer or the web (namely, all of us). These are the camera's native (or RAW) data, the camera's assigned JPEG space, the processor's (say, Photoshop's) working space, the computer monitor's color space, and the output color space (either web or printer). These color spaces can be (and typically are) different. They differ in the amount of colors they contain (the gamut) and the numbers assigned to a particular color. I am going to assume here we are dealing with RGB (red-green-blue) color coding, in which each color is assigned a triple of RGB numbers. In 8-bit modes, each of these three numbers is between 0 and 256 (2^8) -- for a total of 2^8^3 = 16,777,216 colors --, while In 16-bit modes, the numbers are between 0 and 65536 (2^16) -- for a total of 2^16^3 = more than 2.8*10^14 colors. Assigned to each color space is a profile that specifies how the RGB triples are to be interpreted. These profiles have various names, like sRGB, Adobe RGB, ProPhoto RGB, LCDMonitor, Epson S04164X, Canon iP6700D PR1, and the like. Since the same image can pass among different color spaces, it is necessary that one be able to translate one space (one set of numbers) into another so as to keep the colors the same. To do this, something like the LAB space (CIE 1976) or XYZ space (CIE 1931) is used as a common reference (a Profile Connection Space) for this translation. This is what Color Management is all about.
LAB is a color space that has an incredibly wide gamut, encompassing every color we humans can see and many, many more that are not "real"; i.e., they exist only in theory. As I understand it, LAB's RGB numbers have been determined to be able to be associated with colors that people know. Thus, a LAB RGB triple, say, of (240, 20, 10) might correspond to a particular shade of red, like "fire-engine red." These LAB numbers become a "standard" against which all others can be compared; LAB can be used to translate one color space into another, and that's essentially what the profile information allows. All color mode changes, for example, in Photoshop are done via translations through LAB.
Let us say, now, that we take a picture of a lovely red fire engine, and let's follow through what happens.
1. CAMERA RAW DATA: First, the camera sensor captures the basic data in its separate R, G, and B pixels. These are the RAW data, and if you are shooting RAW, this is what gets sent on to your RAW processor, say ACR or CaptureNX or Olympus Master, or whatever. But, for the moment, let us suppose you are shooting JPEG. The color engine in your camera takes these RAW data and "develops" them through a process called demosaicing, combining the separate R, G, and B sensor sites into a triple of RGB numbers for each of your camera's 10Mb (or whatever) pixels. Next comes the
2. CAMERA JPEG SPACE: Let us suppose you selected sRGB as your camera's color space. This space has a particular set of RGB numbers for each color. They are not the same as LAB's or Adobe RGB's or the camera's native (RAW) space. But the camera's engineers have programmed into the camera's image processor (engine) the sensor's profile (RGB values) and those of the various color spaces the camera can be instructed to attach to the JPEGs (typically sRGB and Adobe RGB). So the engine takes the demosaiced RGB values and converts them to sRGB values and then indicates this by attaching (embedding, tagging) the sRGB name to the file to say that this is the way the numbers should be interpreted. In particular, the camera's native capture of RGB values for fire-engine red are now changed to the sRGB values for that same fire-engine red in the JPEG file that it develops. The result is an image with appropriate sRGB color values assigned to each pixel. If you had instead chosen Adobe RGB for your JPEG space, the values would be Adobe RGB values. In each case, you would have the same colors, but with different values of R, G, and B assigned and the appropriate profile name attached.
It should be noted here that, if you shoot RAW, no color space is assigned to the image. The choice of color space in the camera directly affects only the in-camera JPEG development of that image and the thumbnail that is displayed on the camera's LCD. Your choice of color space is, however, attached to the EXIF data. I will deal with this more below. But the important thing to realize is that the choice of color space in the camera has no effect on the RAW data.
Continued in part B
3. WORKING COLOR SPACE: Next we come to the working space of your processor or viewer or whatever. The JPEG file from your camera has a profile attached to it, say sRGB, that tells how the RGB numbers are to be interpreted. When you open this file in your image-processing software, you encounter yet another color space: that application's working space. This may be the same, sRGB, or it may be different, say, Adobe RGB or ProPhoto RGB or Apple RGB or even something proprietary (as is the case with LZ). There is a large number of choices for workspace in an application like Photoshop. You will have had to have picked one as your default space when you set PS up, but you are not stuck with it. I happen to like ProPhoto RGB because it has a very wide gamut compared to others. This is useful when processing RAW files in 16 bits to allow for wide transformation latitude. But others prefer something like Adobe RGB. For the moment, let us assume we are working in Photoshop using Adobe RGB as our workspace.
To this point, then, we have read a file with a sRGB profile into an Adobe RGB working space. So we must choose either to have PS continue using sRGB or convert to Adobe RGB. A dialog occurs on opening giving this choice (if not, you should alter your Color Settings menu item to allow this dialog to be given). I'll talk more about conversion below. For the moment, let us assume we convert the profile to Adobe RGB. This process, described more fully below, takes the files and merely changes the numbers associated with each pixel from the sRGB numbers to the Adobe RGB numbers and tags the file as Adobe RGB. Nothing actually changes in the colors in the file, just the numbers describing them. They are now described by Adobe RGB numbers instead of sRGB numbers. Some processors, like LightZone, have their own (unnamed) work space. In a sense, it doesn't matter what the workspace is as long as the program can convert the source file correctly to it and it is broad enough to allow edits without seriously crimping the image's color content (which effectively rules out narrow color spaces like sRGB for this purpose).
But, of course, you are viewing this file on your computer's monitor. What you are seeing is determined by the
4. MONITOR COLOR SPACE: Your monitor's pixels provide a given color depending (quite loosely) upon the amount of electronic excitation given by three drivers, R, G, and B. A given RGB combination of electronic excitation to a given pixel (or closely clustered pixels) produces a given color. (CRT and LCD screens work differently, but there is no need to go into that here; the essential idea is the same.) The monitor too has a profile that tells the computer how to convert a given color from the source document into the same color on the screen. The computer's color-management system determines how to transform a given, say, Adobe RGB value for fire-engine red into the RGB excitation values necessary to produce that color from the monitor. This monitor profile is what is determined through the act of "calibrating" your monitor, using, for example, Apple's built-in calibration, or Adobe Gamma on a PC, or Spyder III Pro, or whatever. If you do not have good monitor color calibration, these translations will be wrong, and what you see on your screen will not correspond to what was intended by the source file.
But now, with proper profiles, we see how what was originally created through the lens of your camera onto the camera's sensor has become an image on your screen with essentially the same colors as the original scene. Translations have taken place RAW (native) data -> JPEG space -> Working space -> Monitor space. Each space has a separate set of RGB values for the same "actual" color, and the profiles are what determine how that "actual" color's RGB values get translated from one space to the next so the color stays right.
Of course, you may be viewing this profile-tagged image in some other image viewer than Photoshop. Good image viewers "know" lots of different profiles and do the necessary translations transparently. Some viewers (including some leading web browsers), however, may not know some profiles, like ProPhoto RGB, and when they display an image with ProPhoto RGB embedded, they may produce something with weird colors. Often they assume the profile is sRGB, and so, misinterpret the numbers, giving them an sRGB interpretation instead of a ProPhoto RGB interpretation. Thus, for web posting, the safest profile to attach is sRGB.
Continued in part C
5. ASSIGNING VS. CONVERTING COLOR SPACES: In Photoshop you can alter color spaces through assignment or conversion. These are two very different processes. When you "assign" a different color space to an image, the values attached to each pixel remain the same, but the way they are translated (interpreted) changes. Thus, suppose you have an image with an sRGB profile attached. If you assign the Adobe RGB profile, the sRGB numbers for each pixel in the image will not be changed, but they will be interpreted as Adobe RGB numbers in determining colors. Thus, the appearance of the image will change as you assign different profiles, but the numbers attached to the image will not. When you convert from one profile to another, by contrast, the numbers attached to each pixel actually change, and their interpretation changes to compensate. Thus if you convert from sRGB to Adobe RGB the numbers attached to, say, fire-engine red pixels will actually change from the sRGB numbers corresponding to fire-engine red to the Adobe RGB numbers corresponding to that same fire-engine red, but, at the same time, the profile name will change to indicate how to interpret the altered numbers appropriately. The appearance of the image as displayed will therefore not change, but the numbers attached will.
Note that if you open an image in Photoshop with no profile attached, you rarely want to opt to "convert" it from the outset. Rather, opt to open it "as is" (without color management), and then go and "attach" different profiles to it until you find the one that looks right (that will often be sRGB since many cameras allow only this profile). This will allow you to identify which set of numbers are present on that image, and you can then choose to leave that profile embedded in the image if you wish. If you then want to change to another color space, first assign the color space that looks correct, then convert it to whatever space you choose. The first assignment provides a profile that properly interprets the colors corresponding to the numbers on the image, and the conversion changes those numbers (and their interpretation so as to retain the now-correct colors) to whatever color space you wish to associate with the image thereafter.
6. RAW PROCESSOR COLOR SPACE: Above I assumed one was making a JPEG in the camera, and processing it, or viewing it, in some piece of software. Suppose, however, that you are shooting RAW. As noted above, there is no profile attached to a RAW file. When you read it into your RAW converter, such as ACR or CaptureNX or Master or Silkypix or Bibble or whatever, an initial development of those RAW data is presented as determined by whatever default settings you have in play and by the converter's knowledge about how to demosaic files from that particular camera (that's why these RAW converters have to be updated as new cameras come out, because new sensors require new demosaicing algorithms). One of your converter's default settings will be a color space, say sRGB or Adobe RGB, or ProPhoto RGB, and that color space and its RGB numbering scheme will be the one initially attached to the "developing" image (but not to the source RAW file, which is never changed). This can be changed (converted) within the RAW converter by selecting another color space or later in PS, but some color space must be assigned to allow the color data to be interpreted properly by subsequent applications and by the monitor. The RAW converter is doing effectively the same thing here as the camera's engine did in the description above of the Camera's JPEG Color Space: it is demosaicing the data and creating a new file with RGB numbers corresponding to the color space chosen to be assigned to the image.
It should be noted that nothing has actually happened to the RAW data during this development; they remain unchanged throughout. They simply form the basis of a new image file determined by the settings of the RAW processor. The initial (or default) settings are essentially arbitrary and the default image should not typically be viewed as "meaningful." RAW images are meant to be processed, and you use the sliders to alter the settings from the default values to produce the image you want. In ACR these defaults can be set anyway you want, so there is nothing sacrosanct about them. They may result in a nice looking image, they may not. In CaptureNX, a NEF file will be given its initial settings from those you've set in the camera's settings. These camera settings are not used to modify the RAW data, but they are used to determine CaptureNX's initial development of those RAW data. CaptureNX, then, tries to come close to the JPEG development for its default image, but that is only a starting point and is not intended to produce the "final" image. This is true of many manufacturer's converters when dealing with their own camera's RAW files (Olympus Master and ORFs, for example), but often it is not true of "third-party" converters, such as ACR, which typically do not honor the camera's settings.
So the RAW processor (developer, converter) is software that allows you to become a substitute for the camera's JPEG engine and to convert the RAW data as you wish rather than as programmed by the manufacturer's engineers. And just as the camera's JPEG engine assigns a profile to the resultant file, so too does the RAW converter. The output of the RAW converter is a "developed" file with profile attached that can be saved as a JPEG or a TIFF or whatever, or can be sent on for further processing in, say, Photoshop.
So now we have a final file -- produced either by the camera or by you -- with a profile attached and being viewed on our monitor. At this point we often want to display it on some output device such as the web or a printer. This leads to the
Continued in part D
7. OUTPUT (Printer, Web) COLOR SPACE: Finally we come to the output color space, which may be the web or a printer. Let's go with an inkjet printer for now. The printer, like a monitor, makes a color by combining various colors, in this case inks. Inkjet printers use CMYK(RG) inks, but the colors, just like a monitor, are determined by an excitation of an RGB triple. A given set of RGB values produce a given color. So, just like a monitor, the printer has a profile that allows translation of RGB values to produce the desired color. Suppose we are printing an image from Photoshop using an Adobe RGB color space. If we print "allowing PS to determine colors," the printer's profile, given to PS, helps it translate Adobe RGB's fire-engine red into the RGB values that the printer requires to produce that same fire-engine red (assuming it is within the printer's gamut -- or range of produceable colors). These profiles are determined by calibrating the printer or they may come with the print driver supplied by the printer's manufacturer. These often have names identifying the printer and the particular paper being used. The Canon 6700D with Photo Paper Pro printed at top photo quality, for example, has a profile, installed when you install the print driver, named "Canon iP6700D PR1." You can see these profiles in the pull-down menu in PS when you examine the Settings Menu. An appropriate printer profile should be selected in the Print dialog before you hit the print button. If you don't have a profile for your printer, you are typically better off selecting "Let Printer Determine Colors," rather than "Let Photoshop Determine Colors." But, if you have a proper profile, use it. If you've done things properly all the way along the line, this is the way you get out of your printer something that looks very close to what's on your screen, because at every step along the path a proper translation is being made by the various profiles to keep the colors straight.
If you intend your image to be viewed on the web, a profile is also needed. Many net savvy sites are able to take an image with just about any major profile and convert it properly, but many other web-based display packages are rather naive and assume sRGB. This is a color space that is good for most monitors, even crummy ones. Thus, files intended for the web often have sRGB profiles attached. Even if you use something else in Photoshop for your working space while you process the image (and you likely should), as a final step before posting, you can (and likely should) convert the profile to sRGB.
8. GAMUT AND INTENT: The sRGB profile is significantly narrower in the number of colors it contains than most other major profiles (i.e., it has a narrower gamut), and this means that some colors are going to get (irreversibly) clipped when you use it or convert to it. That is why such a conversion is best done as a last step. Adobe RGB is broader than sRGB and is more appropriate for printing to an inkjet printer. ProPhoto RGB is very broad, and contains many colors that cannot be reproduced on any monitor or printer. This is a good color space to use while processing the image, because it helps keep a fuller set of colors while color transformations are being made during the editing process. But both ProPhoto RGB and Adobe RGB are going often to produce colors that are beyond what the printer or monitor can reproduce. So some clipping must take place. Just how this clipping is effected is what is meant by "Intent". One of two forms of Intent is usually chosen: Relative Colorimetric and Perceptual. To see the difference, consider the following. Suppose we have two color spaces, one that encompasses the other. With great oversimplification, but good pedagogy, picture these as two concentric circles, with their common center point being their common white and one with a larger radius. The circle with the larger radius has the greater gamut, and part of its color set lies outside the one with smaller gamut. When using the Relative Colorimetric intent to reduce the larger to the smaller, all the colors depicted by points lying outside the smaller space are simply moved to the point nearest to them on the perimeter of the smaller space. The "impossible" colors of the broader space are thus truncated to their closest "possible" color in the smaller space. With perceptual intent, the reduction is done more nearly as if you were to shrink the larger circle down into the smaller one, all of the colors sliding proportionately inwards towards the white center. Just how different the results of the two intents can be depends very much on the image -- on how many colors are out of gamut and how far they are out. With some images there will be very little difference between the two, and with others the difference can be great. And when the difference is great, there is no way that I have found to predict effectively which will produce the image more to your liking. You often need to try both.
Continued in part E
9. SOFT PROOFING: One way of trying to see which intent is better as well as trying to see on your screen what the print coming from your printer might look like is to use "soft proofing." We have seen how your monitor has a profile that allows colors coming to it to be translated to look correct on the screen. A soft proof allows the printer's profile to "correct" the monitor's profile so that what is displayed on the screen is made to look like what would come from a printer using that printer's profile. Sometimes this works well, and sometimes it is misleading. Typically soft proofing allows you to view different intents and also to emulate how the paper will look, since the paper has considerably less dynamic range than the computer screen and less brightness. It also can have the facility to adjust the black point, since papers are not able to produce blacks as black as they can be in the working space. Without compensation, many of the darkest shades will simply be collapsed into the darkest black possible on the paper. Usually it is recommended to use black-point compensation -- but, like everything in this business, nothing is certain.
I haven't finished going through the whole thing, but it looks like you're doing a great job with this. Congratulations on being brave enough to take it on!
I did see one area in Part C where your information differs from my understanding (and I don't claim to be an expert here, so I can easily be wrong). You say that when you convert from one profile to another, as opposed to assigning a profile, the appearance of the image doesn't change. But if you are converting from a larger gamut space, like ProPhoto or Adobe RGB, to a smaller gamut space like sRGB, there must be some colors in the larger space which have no exact equivalent in the smaller space - I would have thought these colors would be mapped to the closest color in the smaller space. Since they are only "closest," and not the same, I would think the appearance of the image would have to change for those colors. Have I got it wrong?
I think I've also see this phenomenon in the histogram of the image in Capture NX. Sometimes when I change a profile from sRGB to Adobe RGB, one of the color histograms will go from being clipped on the right to being below the right-hand edge (i. e., less than "255," or its 12-bit equivalent). And if I adjust an sRGB histogram to be exactly "exposed to the right," and then convert to Adobe RGB, I'll sometimes find that one of the channels blows out.
If I'm misunderstanding what's going on here, I'd appreciate your straightening me out.
After reading part D and then re-reading what you said in C, I think maybe you were limiting your comments about the appearance not changing to the case where you go from a smaller space (sRGB) to a bigger one - if that's what you meant, I get it. But it is probably worth emphasizing that the appearance DOES change when you go in the reverse direction.
I am answering your post down here to minimize breaking up the parts above. That will be impossible, of course, but . . .
In principle you are absolutely correct, but what you will see on the screen will be virtually the same or, if anything, barely altered. This is because the screen's gamut is small and the changes that take place are basically beyond it. You'll see, if you do conversions in PS, that you really can't tell much of anything has happened by what shows on the screen, and this will be the case whether you are increasing or decreasing the gamut. But your thinking is correct.
HOLY PROFILES BATMAN!!!
Well, I haven't read it all yet. But I'm marking this for future reading. I'm pretty good with understanding what you're talking about as it is, but going over this stuff from someone who has put as much effort into a 5 part explanation can only help me to understand it better.
I applaud this effort. Best thread of the evening.
This book is the Bible of Color Management
Real World Color Management Second Edition
Industrial Strength Production Techniques
by Bruce Fraser, Chris Murphy and Fred Bunting
Indeed it is, and I have no intention of putting myself up as an authority such as the late, and wonderful, Bruce Fraser. I am greatly indebted to his writings. I did think, however, that many on this forum, many of whom clearly haven't had a chance to read such books, might appreciate a fairly concise overview of the subject.
Have only had time to read Part A at this point and think you did a great job of setting out the basics in a very straightforward manner.
However, you said:
"LAB is a color space that has an incredibly wide gamut, encompassing every color we humans can see and many, many more that are not "real"; i.e., they exist only in theory. As I understand it, LAB's RGB numbers have been determined to be able to be associated with colors that people know. Thus, a LAB RGB triple, say, of (240, 20, 10) might correspond to a particular shade of red, like "fire-engine red." These LAB numbers become a "standard" against which all others can be compared; LAB can be used to translate one color space into another, and that's essentially what the profile information allows. All color mode changes, for example, in Photoshop are done via translations through LAB."
You might want to better explain the LAB numbering system since it is entirely different than RGB numbering and there is no such thing as an LAB RGB triple.
8 bit LAB numbers are represented by L* (Lightness with numbers from 0 to 100 percent), A* (represented by numbers from -128 to 0 (Green) and then 0 to +128 for red, and b* (represented by numbers from -128 to 0 (blue) and 0 to + 128 (yellow). Since LAB numbers are not device dependent, conversion from one color space through the PCS (profile conversion space) takes place because your input RGB numbers are interpreted in the PCS to LAB numbers and then to the output spaces different RGB numbers.
Hope I get a chance to read the rest of your post tomorrow, most informative. You might want to post also on the Printer Forum where color and conversions are most talked about.
Thanks for taking your time and writing this wonderful summary up. Finally a post where I can learn something again (under all this "who makes the best camera" stuff).
One question. Could you explain a little more about the Monitor Calibration, as this is very likely to mess up all processing steps.
I sometimes get confused about the settings I can choose while calibration with the Spyder 2 colorimeter. For Example, what gamma and white point temperatures should one choose. And what is the luminance mode?
Thanks again for your efforts
Awesome little overview you've posted here. I haven't quite finished reading it but will soon.
Thanks for this
Firstly I congratulate the writer for this very well put together thread. Well Done !!
I have always wanted to understand how colour profiles work etc..but have found a lot of it goes over my head and i loose my way after a while. This thread although very good and I understand some of in small parts does not help me personally acheive my goal of getting prints as close to what I see on my monitor.
Why you ask ??? well because like other threads it can be a bit hard to follow and understand. I am sure there are many reading this thread that fully 100% understand it but like wise many that dont. I would dearly love my prints to look like my monitor as I end up waisting so many of them messing about.
What I am trying to say is a basic step by step explanation on setting up your monitor, CS3 and Printer would be very very useful. I have played with many settings etc.. without really knowing if what I am doing is correct.
1. I have a 19" lcd HPw19ev moniitor which is caliberated with eye one match gadgit
2. I use PS3 and have my print settings set up as follows:
In printer profile should I have my own model here ?? which in my case is a canon IP4300
If any one can help it would be fantastic
What I am trying to say is a basic step by step explanation on
setting up your monitor, CS3 and Printer would be very very useful.
I have played with many settings etc.. without really knowing if what
I am doing is correct.
I didn't read the OP's summary yet, but I can answer your questions directly..
1. I have a 19" lcd HPw19ev moniitor which is caliberated with
eye one match gadgit
So the profile the Eye One created should be the one selected in your system-wide Monitor preferences. Check.
2. I use PS3
In Photoshop's Color preferences, you will select an overall "working space" for editing. I use AdobeRGB 1998 profile. Check.
and have my print settings set up as follows:
In printer profile should I have my own model here ?? which in my
case is a canon IP4300
Yes, in PRINTER profile you pick the printer, and hopefully the paper type as well. And you should use the "Print with Preview" option if available so you can check these things. You should see...
the documents color space (which is very often different than the working space! don't change it!) like Nikon sRGB or Nikon Adobe RGB.
the printer profile where you pick the paper type (like Canon High Gloss or something)
Now this is important. When you hit Print, in the following Printer dialogue, make SURE Color management on the printer side is turned completely off. Completely off!! Otherwise you get double profile stuff happening. Color management is handled 100% by Photoshop, so again turn off color management in the printer's preferences.
Your prints should be EXTREMELY close to what you see on screen. If your highlights look blown out, you've done something wrong and the printers color management is getting in the way.
Hope that helped. Good luck!
Many thanks to you and all the others with their nice comments. I appreciate them and I do hope this is a help to some.
Meanwhile, choosing parameters for monitor calibration is, to a great degree, a very personal choice. I have found that I get my most useful screen renditions using a white point of D65 and a gamma of 2.2. This is fairly standard, and it gives an image that allows me best to assess color and to predict what ultimately a print might look like.
There are those that say Mac users, which I am, should choose a gamma of 1.8, and perhaps that may have been true of the really good ol' Macs. But, certainly with LCD screens, I find using a gamma of 2.2 with the Mac is far preferable. If one has a Mac with gamma set to 1.8, try changing it to 2.2. BUT, if you don't appear to like it right off (at first it seems somewhat stark), give it some time before deciding to change back. I think that once you get used to it, you'll like it better. It can take several hours (days). But, if you really find you don't like it and want a warmer feel, by all means select the parameter combination that suits you best. It should be the one that allows you to feel secure in assessing colors: hue, brightness, and saturation.
Other parameter choices can make sense, but usually only if you have very special ambient lighting in the room and are tuning for a very special monitor. For those of us using everyday gear under "normal" conditions, all that choice gets to be a bit much.
First, be sure that you select your custom monitor profile to be the system profile. This is done via the computer's system management routines, not by CS3. CS3, like most software displaying to the monitor, automatically uses this system-chosen monitor profile for its display profile. I haven't played around with multiple monitors in a long while, but I would suppose that display to separately calibrated monitors should take place transparently.
Next, in your CS3 Color Settings menu, be sure to choose your desired RGB space in the RGB Working Space pull down. This could be any of a number of spaces, including sRGB (hum), Adobe RGB, ProPhoto RGB, or the like. Also be sure to check all the "Ask When" buttons. I have Relative Colorimetric selected as my default rendering intent. This can be changed on a case-by-case basis during printing. Also select Black Point Compensation and Dithering.
Now, when you print, be sure to go through the Print Preview window (now simply the Print window in CS3) and for Color Handling select "Let Photoshop Manage Colors." Then, in the Printer Profile pop-up, select your printer profile (or printer/paper profile). Rendering Intent I deal with in part D.
Now, click Print to get the print-driver window, and make your paper, etc. selections. However, as has been pointed out correctly by a prior poster, it is important at this point that you make sure there is no further color correction. Under Color Options (or whatever is the equivalent in your print driver) be sure that Color Correction is None or Off. The profile you selected before is going to manage the color correction, and if the driver does its own as well, you will get double correction, which invariably leads to weird results.
|Waffles with fruits by Coolinarka|
from Food photography (desserts)
|Vestrahorn Frozen Reflection by Will B Milner|
from Ice cold