Okay, so let's say that you have an image file with an embedded color profile, a properly-profiled monitor, and an application that respects both profiles: will you finally see the proper, true colors?
Maybe.
First, you must define “true color.” If you define it as the colors as encoded in the image, then you'll see them properly to the extent that your monitor can actually display the image's full range of colors. A monitor or printer can only produce the colors, that, er, it has the physical ability to produce. If it's a particularly wide color space, and not a particularly high-caliber monitor, colors will be clipped in the process of display.
If you define “true color” as those colors as they existed when the camera first attempted to capture them, you have many, many more variables. These include the characteristics of the camera's sensor, the white-balance settings (and other settings such as exposure and saturation), the color space used to encode the image (are true colors clipped to fit inside the color space? Do true colors need to be “fudged” so that they match a color actually encodable within the space?), and any lossy compression used to encode the image.
Of course, even if you could see the true colors, you still might not like the image — in the end, there's no accounting for artistic taste 🙂
Suggestions for the Digital Photographer
The two most important recommendations:
Embed color profiles in all images. This lets color-managed systems know exactly how to treat the color data in your image.
When preparing a photo for web display, use sRGB. On average, it's the closest color space to the average user's average monitor.... on average. Browsers that don't understand the embedded profile are all Color Stupid, so sRGB is the best you can guess.
If you want to maintain maximum quality and your camera has the ability to shoot raw images, do that, converting to a JPG, TIFF, or the like when needed, using a color space that's appropriate to the intended use (e.g. sRGB for the web, or for printing, the color space that best suits your printer). Investigate Apple's Aperture and Adobe's Lightroom. When writing images, be sure each includes an embedded color profile.
If you must (or prefer to) shoot JPG in the camera, use AdobeRGB or other “wider” color space, if available. When making copies for the web, or to give to technically-challenged friends and family, convert a copy to sRGB, embed a color profile, and use that. When working with the image in an editor like Photoshop, set the “working space” to a color space which encompasses both the image's native color space and the color space you intend to convert to.
Suggestions for the Internet Surfer
Understand the capabilities of your browser/OS (and perhaps make a change if you don't like the limitations).
Even if you don't normally use Apple's Safari, consider having it around for the times when you want to see profiled images at their best.
Profile your monitor so that you get the most proper colors it has to offer.
Beg Microsoft and Firefox developers to make their browsers color managed.
Suggestions for the Web Designer
CSS is, by definition, to be rendered with the sRGB color space, but this does not happen on any browser that I know of — for all practical purposes, they render CSS colors (and Flash, for that matter) without color management. On most browsers, this is the same treatment as images, but on Safari and other color-managed browsers that respect an embedded color profile, be sure to omit the profile if you want your image colors to match your CSS/Flash colors
This puts you directly at odds with getting the most proper colors, as that requires the embedded profile. Luckily, you can make the decision on a per-image basis:
- If you want the image colors to match CSS/Flash colors: save as sRGB without a color profile.
- If you want the image colors to look correct: save as sRGB with a color profile.
Thus, images that are part of the masthead or nav or other helper images can leave off the color profile, but photographs should keep them.
Suggestions for the Software Developer
The makes of browsers, image-display applications, image editors, and image-printing applications would do well to...
Recognize and apply embedded color profiles.
If an image has no profile, but is tagged as sRGB with the EXIF:ColorSpace tag, use sRGB. All digital cameras that I know of write sRGB color data without an embedded color profile, but they do note sRGB in this Exif field.
If no profile and no ColorSpace field, respond to the InteroperabilityIndex field (“R98” for sRGB, “R03” for AdobeRGB). This is from an Exif-related extension to JEITA's DCF (“Design rule for Camera File system”) standard.
If all else fails, use a default color space that is initially sRGB, but allow the user to change it to whatever color space they like.
Educate your users about color-space issues.
Furthermore, software that writes images....
When the color space is sRGB, include the sRGB profile and set the following Exif tags:
ColorSpace = 1; InteroperabilityIndex = 'R98'; InteroperabilityVersion = '0100';
When the color space is Adobe RGB, include the Adobe RGB 1998 profile, and set the following Exif tags:
ColorSpace = 65535; InteroperabilityIndex = 'R03'; InteroperabilityVersion = '0100';
When the color space is anything else, include the appropriate ICC profile and set the following Exif tags:
ColorSpace = 65535; delete the InteroperabilityIndex field delete the InteroperabilityVersion field
Additionally, when changing the color space of an image, it would be a good idea to remove any MakerNotes fields related to the original color space, since they'll no longer apply.
Embed a color profile in all images your cameras create.
For the time being, continue to default to using sRGB, but offer better color spaces as options.
Offer a color space that preserves as much color data as the camera's sensors originally capture (such as raw).
Educate your users about color-space issues.
Suggestions for Online Image Hosting Services
Add the appropriate color profile to unprofiled images that are tagged with a color space name.
Warn users when they upload images that are neither profiled nor tagged with a color space name.
When resizing images for thumbnails and such, convert to sRGB and embed a color profile.
Educate your users about color-space issues.
Links
Some related links that I found to be useful...
- William Steer's Introduction to Color Science
- Bruce Lindboom's RGB color-space info (detailed and technical)
- Charles Poynton's Color FAQ and Gamma FAQ
- Eugene Vishnevsky's Introduction to Color (a bunch of fun Java applets for interactive investigation)
- Comparisions of Adobe RGB and ProPhto RGB: one, two
- Color-Science Glossary
- Online Exif-Data Viewer
- Norman Koren's Introduction to Color Management and Color Science
- ICC Profiles: v2 vs. v4
- Copies of JEITA's Exif and DCF standards
- More on Digital Color Spaces: a Reply to Chris MacAskill
Jeffrey, I assume that you are saying so implicitly, but just to perhaps make it explicitly clear:
For anyone capturing physical color, converting it to a digital representation, and then editing that digital file in post-processing (film scanning, digital photography, etc.), it is always best to capture using the “widest” (most all-encompassing) color space available. In other words, make sure that the data that gets written to a file via your capture device (scanner, camera, etc.) is saving the largest amount of color information. For people who are scanning, this also means capturing at 16-bit instead of 8-bit.
If your camera or scanner has the option of sRGB or AdobeRGB, choose AdobeRGB since it will retain more color information. Jeffrey is just saying that if you’re outputting to the web, make sure to convert from AdobeRGB to sRGB, and save the file with an embedded sRGB profile so that the image that others will see on their monitors will (roughly) match what you see on your monitor.
Of course, if you have the option, there are better choices still, such as ProPhoto RGB or Wide Gamut RGB (depending on the range of colors you are capturing). While some scanners give you the option to use these color spaces, most digital cameras do not. Shame, really. I often wonder if the sensor in my camera is capable of more than what my firmware tells me it can capture.
In post-processing, you will want the largest amount of color data available in order to have the most flexibility to manipulate color/exposure/whitepoint/etc.. Once post is done, you can output to sRGB or whatever you’d like (which, in the process, will throw away the “extra” color data that won’t be used for display anyway).
This is all for the web, mind you. Outputting to print, TV, or film is a whole other beast all together.
Actually, Dan, there are times when a smaller colorspace is better. They are not necessiarly common, and readers of my blog are unlikely to run into them, so perhaps I’m being pedantic, but it’s important to at least understand why a smaller colorspace might be better.
All the color spaces you mentioned (ProPhoto, Wide Gamut, sRGB, AdobeRGB) have the same number of color-encoding points. If they’re 8 bits-per-color, that’s 24 bits worth of encoding points. Color spaces like sRGB and AdobeRGB are 100% efficient, meaning that all of their encoding points reference real colors, so they can encode 16,777,216 distinct colors each. AdobeRGB is wider than sRGB, so AdobeRGB’s 16,777,216 distinct colors are spread out over a wider range of color. Put another way, sRGB uses its encoding points to more finely encode colors, at the expense of a more narrow range of colors.
On the other hand, ProPhoto and Wide Gamut forefoot some of their encoding points to non-real colors in order to be able to encode a wider range of colors. They can each encode about 15 million distinct colors — about 10% fewer colors than either AdobeRGB and sRGB. They trade off some fineness to the granularity of colors they can encode in order to get the wider range.
So, let’s consider a situation where you know that all colors in your photo are within sRGB’s range. Since sRGB’s range is a subset of all the others, you know that any of them can encode the range of colors in your photo. In this case, sRGB will encode those colors with the most precision, since it’s bringing to bare more color-encoding-points to your colors. On the other hand, ProPhoto RGB (for example) has fewer color-encoding-points for your range of colors, and so by definition must encode them more “roughly”. So in this case, sRGB is clearlty superior to any of the others.
Practically speaking, any given scene is likely to benifit more from encoding a wider range of color than a finer granularity, so in this real-world sense, your advice is sound. And “real world” is what counts.
Still, don’t make the mistake of taking something that’s already sRGB and thinking that you’ll benifit from converting it to a different color space, as such a conversion will almot certainly lose information — the new space takes encoding points away from the range of colors you do have, and allots them to colors that you can’t have (because they couldn’t have been in the sRGB original in the first place). That’s why it’s generally best to leave Photoshop’s color setting to “Preserve Embedded Profile”, which means that it’s edited in whatever color space it had originally.
As for your camera, Dan, if you can shoot RAW and process that way (e.g. with Adobe Lightroom), you’ll be getting the best your camera’s sensor can provide, whatever that is. Internally, Adobe Lightroom uses something similar to ProPhoto, and I’m sure it’s 16 bits, so it can represent the entire range of colors down to a very fine granularity. I’m sure your camera sensor can’t produce them all, but Lightroom could handle it if it did 🙂
Jeffrey
What I do is capture RAW images, then convert to 16 bit ProPhoto RGB, and from there to L*a*b* color mode. This provides the greatest color flexibility, but has the disadvantage of requiring a few extra steps. At the end, after manipulations have been done, the image can be scrunched into sRGB or whatever for web display.
Very useful article, in particular the demonstration of color space variations with images. Does Internet Explorer really color manage all images via sRGB to a known Windows monitor profile, or is it more correct to say that it simply assumes (or enforces via OS settings) that the monitor will be near sRGB, and simply does the same thing Safari does: no color correction? In that case, your “Color Stubborn” apps are truly almost color unaware, while Safari at least respects color profile information when given, correctly targetting the monitor profile. And if, as I do, you re-calibrate your Mac display to a gamma of 2.2 (incidentally, very near the natural gamma of most LCD displays), Safari becomes equivalent to IE for untagged images: just pass them through to the display — i.e. it becomes “Color Smart” by side effect.
I also wonder whether you’ve considered that the “Color Foolish” applications which you decry on the Mac are in fact also “Color Non-conformists”; that is, they do not conform to the lowest-common-denominator color space convention which dominates via Window’s pervasiveness, and in so doing, take at least a tiny step away from the hegemony. In fact, as I see it, the “Color Smart” applications you hold as the gold standard would do just as much to perpetuate the status quo as the “Color Stubborn” applications like Internet Explorer. If untagged, profile-free images really worked correctly everywhere, there would never be any motivation to add profiles to images — not for camera manufacturers, not for photographers, not for software developers. We’d remain stuck forever with a limited, display-oriented color space, even as technology for reproducing color for display and print makes continued progress.
Indeed, consider whether you even would have written this article at all if all common browsers had been “Color Smart”. You might not then be urging digital photographers to tag and embed profiles in all their images to maximize compatibility on the web. At some point, someone has to step out of line.
Hey Jeff,
Wow, so this is a very provocative and thought-provoking post. It has had me following up with what I can do about it at SmugMug for a month and I finally poured my own heart and soul into the issue:
http://blogs.smugmug.com/onethumb/2007/02/14/this-is-your-mac-on-drugs/
I’d love it if together we could get some momentum for Apple to implement the easy fix that makes this right.
All the best,
Chris
Chris, my reply to your comment got so large that I had to move it to its own blog post:
http://regex.info/blog/2007-02-17/384
Thanks much for a really in-depth and clearly-written article. I won’t go into the color headaches that had me googling all over for an answer (suffice it to say that drugstore digital labs are not using Adobe RGB, and my normally-making-monster-prints-with-nice-service-bureau self hadn’t thought of the problems not being in sRGB would cause), but your site has really helped out. I’ll be passing the info along to the digital photo classes that I’m teaching. Perhaps one of the students will grow up to run a web-browser company, and we can get some less-foolish browsers.
Cheers,
brad
I always thought screwed up default settings in Photoshop were done on purpose so that guys who know what they are doing can easily get better results than amatures?
e.g. the defult colour preferences always used to give dull and flat seps.
Unfortunately this has largely been fixed in later versions.
This concept is a good thing, don’t lobby Adobe to change this thinking.
It makes knowledge and experience worth more.
Regards,
-Mike V.
Jeffrey:
Could you comment on Window Color System (http://www.microsoft.com/whdc/device/display/color/WCS.mspx), and perhaps find out when we’ll start to see WCS devices?
Pete
“Suggestions for the Internet Surfer
Beg Microsoft and Firefox developers to make their browsers color managed.”
Firefox V2 does support color management.
I’ve been using Firefox 2.x for some time, and it’s certainly not color-managed by default. If there’s a way to turn color-management on, I’d like to hear about it. (But since there’s a long-standing bugzilla entry for adding color-management to Firefox, I strongly suspect it remains an unsolved problem.) —Jeffrey
Colour Management; I know I don’t know but I meet those that say they do but I know enough to know they don’t! I haven’t met anyone yet who sticks throughout to sRGB say “I’m having problems with my colours, I don’t get what I see on my screen”
An added point; to do some experiments I tried to find some of my images where I might be able to show the difference between SRGB, aRGB and ProPhoto. Most of my images do not push the gamut so as far as I can see the difference between the colour spaces is not material. I don’t take pictures with gaudy colours. The image I chose do do my experiment just showed more colours out of gamut when I went to print on my Epson Photo 2100. So another bit of software is then manipulating the ‘differences’ in order to get an reasonable image.
So my advice is to stick to sRGB. You are much less likely to have problems. Unless your images are violently coloured and you are printing out on something very special then you won’t see the differences anyway.
I enjoyed your pages. Thank you.
I’ve spent ages (read, hours and hours,) attempting to get my head around some of the more in depth issues involved with CM, and this is THE most helpful and clearly written guide/discussion I have found so far. Thank you so much for putting all the time and effort in to this site – its made a huge difference to my level of understanding! :-)))
Thanks again Jeffrey!
What can I say – this has been one of the best photography / design articles I’ve ever read. It really should be picked up by one of the bigger print mags. The clarity of information in your article is top level. You have helped myself and I’m sure a lot of other people understand some very complicated crap put out by different companies with proprietary interests. At least in understanding, we can control the limitations and use them to our advantage.
Wow. As a scientist, I think I have at least some appreciation of the amount of work that went into this article, and I want to thank you for putting in the effort to educate me (and others, of course). This article really connects a lot of dots for me, and I’ve actually worked with color. I’ve bookmarked this blog and will probably be reading much of what you write. Thanks again.
Thank you for your effort in writing this article. It was an enlightening post for me. I finally understood why, when exporting to JPEG from Lightroom or Photoshop and watching the photo with another software, I was loosing the greys I loved in my original photo.
I now have a clear image of what color management means.
i am into photography since ages but this is the one article it made me understand the whole color profile “hell” the first time
http://mozillalinks.org/wp/2007/08/color-management-support-added-to-firefox-3/
Firefox 3.0 support color management, why does these pages not mention it? Safari isn’t the only color management aware browser.
Super article, Jeffrey, a BIG BIG thank you. For the first time I understand the reasons behind my color problems.
Can you please comment on the topic of monitor calibration. I am taking your suggested steps to ensure I have the best possible color for photos that I post to the web: I have my monitor calibrated, use Lightroom, export to sRGB. You have pointed out, however, that Internet Explorer is Color Stupid, and also does not honor the monitor’s calibration profile. Does this mean that even if my friends calibrate their monitors, and I have been encouraging them to do so, they will not benefit from it–at least not for viewing photos on the web?
Nelson Guzman
Many thanks!
I have had the problem before, and hit it again – creating an image for my website and finding it doesn’t match the CSS colours. I use Safari at home and Firefox/IE at work. Oddly, this time Safari caused the problem and it took your article to teach me that it was because Safari was properly interpreting the image.
You have saved me a lot of time, energy and frustration. My website now works, having removed the profile!
Thanks for taking the time to write such an excellent article.
This has cleared up all my questions about this mysterious colour gamut/profile/mgt thing. Now I will not proceed willy-nilly as before. Thanks a lot for the time an effort you have put into educating us “colour-stupid” folks.
Hailing from Port of Spain, Trinidad.
•JEITA’s EXIF Standard (Ver 2.1)
•JEITA’s DCF Standard (Ver 1.0)
These 2 “LINKS” are broken
Thanks, I’ve fixed them. —Jeffrey
Wow, thanks for the thorough explanation!
I’m practicing photography and edit my images in Photoshop. I save RAW with my camera, and unknowingly uses AdobeRGB in Photoshop’s Camera Raw. Thus AdobeRGB is used all the way up to the saved JPEGs. The result is that:
1) Images I upload to Google+, viewed Using Chrome 18 are unsaturated
2) Images I upload to Google+, viewed using Firefox 11 are correct
3) Images I upload to Facebook appear correct
It seems that Chrome is still color stupid so my AdobeRGB images aren’t interpreted properly.
The interesting thing is that when I upload to Facebook, Facebook will compress the image and in the process convert the image to sRGB so that it appears with the correct color in any browser.
I’ll be sure to save to sRGB when saving to the web from now on, well at least until the state of affair gets better. Once again thanks!
A great article about a thoroughly confusing issue. Many thanks.
I am a beginner and think I understand the “convert a copy to sRGB” but don’t understand how you then, in a second step, embed a color profile. Can you help me in understanding this?
It’s usually a function of the software you use. Lightroom does it automatically. Photoshop sometimes does it automatically, sometimes never, and sometimes offers an “embed?” checkbox (it depends on the version and the output method). Docs for your image-processing software should mention this stuff… if it doesn’t, the developers are probably clueless about it, and all bets are off. —Jeffrey
Hi Jeffrey, Not sure whether to laugh or cry reading this article!
But it is very enlightening stuff, thankyou.
I have a question – can you explain what the color profile that lightroom automatically embeds in the image when exporting actually is…? Or where it derives from? Sorry if that’s a bit vague… just trying to work out if it’s related to the calibration I do with my Spyder3, or if it comes from the camera. Does it change as you edit the image? Apologies if the answer is already above, but it’s a tricky subject to follow!
Ultimately I’m trying to work out why all of my images look significantly different on each browser I use on my Mac (Chrome, Firefox, Safari – there is no consistency at all!). I use your metadata wrangler and I’m also wondering if there are any colour space tags that I’m removing that I should leave in!
Thanks for your time, this is a superb article.
Lightroom’s export/publish dialogs generally have a section where you can specify what color space to use, but a plugin might remove it if the destination site expects a particular space (e.g. my SmugMug plugin forces sRGB because SmugMug converts everything to sRGB, so there’s no benefit to using anything else). The problem with your browsers is certainly the browsers, unless you’re stripping the profile with the wrangler, of course. —Jeffrey
My workflow is to export images from lightroom to a fileserver and view them on my 50″ plasma which does 1080p. I use either my HTPC or oppo 103 to project the photos on the TV. What color space should I be using?
I’d guess that with consumer video products, in the absence of specific info otherwise, your safest bet is sRGB. —Jeffrey
Just wanted to say a big thank you for writing and sharing this article (your analogies were greatly appreciated too 😀 ). It has allowed me to finally understand and resolve some niggling questions I had about why images I posted on the web looked so very different on different screens and devices. Not only was it incredibly informative but it was a pleasure to read. (Though I must admit, it was also a little embarrassing to think of how many pictures I may have edited/posted/shared while neglecting the importance of using a suitable colour profile! Well better late than never).
Thanks again,
Timothy Selvage (Norwich, Norfolk, UK).
I recently discovered and confirmed via Adobe live support chat that ACR opens raw files using the stored EXIF color space.
During the import of a raw file this means that ACR adjusts the capture to fit the EXIF color space. In the case of a sRGB EXIF and raw shooting the image being worked on becomes a sRGB despite the option that allows to export to PS as a RGB.
The option creates an empty color space difference and each edit used fills the ‘blanks’ in the end creating a flawed image.
Is my understanding correct?
This impacts all software that uses ACR to import a raw file.
The sentence “ACR opens raw files using the stored EXIF color space” makes no sense. I don’t doubt that someone in customer-support chat said this, but it’s nonsensical. Exif data can refer to only two color spaces (sRGB and AdobeRGB), neither of which apply if you’re shooting raw… the whole point of raw is that it’s the raw sensor data, whose color space is implied by the hardware sensor itself, that is, implied by the camera make and model. That’s why you have to wait for an update to ACR when a new camera is announced, because it has a database of color profiles based on camera make and model, and Adobe has to build a profile for the new camera before they can work sensibly with the raw data. (One exception is DNG files, which can include a color profile to describe the nature of the raw sensor, so in this case it’s explicit and not implied.)
That being said, when you load a raw file into Photoshop, ACR has to convert the device-dependent sensor data to whatever device-independent color space you’ve chosen as your working color space. If you pick a “small” color space like sRGB, a lot of color information can be squeezed out and lost, so even if you later export to a wider color space like ProPhotoRGB, the data will have been lost. But if you’re going to be exporting in sRGB anyway, then it’s perhaps better to see the result of the loss at import, rather than waiting to be ambushed by it at export. —Jeffrey
Hello Are you still actively replying to posts, i have a complex situation that I could use some help with looking at.
Active, yes, but not as often. Email is perhaps better. —Jeffrey