When you work with digital images, it important that they look the same way. Therefore it can be very frustrating when they look differently in different applications.
First I want to make sure you understand the concept of colorspaces. I will not go into details about the technicalities, since there are a lot of great resources on the topic on the internet , . We are only dealing with RGB colorspaces, so you can disregard talk about CMYK, Lab, YCrCb and other colorspaces.
In overall terms a color profile determines how an RGB value in the image is displayed on the screen. In general colorspaces are handled in different ways in different image formats, but it is very common that an ICC profile is embedded in the image, that tells how the image data should be interpreted.
In a perfect world all applications would handle images the same way. However, since 99% of the images you are encoutering are in the sRGB colorspace (in approximately gamma 2.2), many applications simply skip the conversion and assume that all images you give it is in sRGB. This is much easier (and faster), so it is understandable that applications do this.
In general applications can be separated into two categories:
When you are dealing with a color issues, it important to know into which category your application falls.
Unfortunately there isn’t any good way to determine the level of support in the applications, other than visual inspection, which gets even more tricky when you are dealing with output for print. Here are some examples:
The two last images where opened in “Eye of Gnome 2.32.0″, which does support color management. A lot of similar programs, like desktop thumbnails and similar “simple” apps will display the same problems when you open the image, because GDK+ does not handle color management until very recently.
Applications that handle CM correctly
Update: Rather than listing which applications, I’ve found, I found this list on Wikipedia:
These are the applications I know that handle embedded ICC profiles, as you would expect. There are likely many others – if you know some, please leave a comment below.
Applications that does not handle CM at all
This is actually the easiest case. In this case, you must export images in 8 bit in sRGB color space. No other options will look right. 16 bit images are most likely being displayed with wrong gamma. So if you are not delivering images to a professional, who you know will be able to view and handle images correctly, you should always deliver them as some form of 8 bit sRGB, to be sure they look all right.