I thought I had Adobe’s colour profiles all worked out. I really did.
I’m sure they’re great for photographers and print designers and so on. The problem is, on the web, we deal with browsers and image formats that don’t support colour profiles. With a few exceptions, we can’t use them even if we want to. That means an embedded profile is usually worse than a nuisance, it’s actively harmful: when saving out JPGs and GIFs the colour often shifts from what’s intended to something very different.
The answer seems to lie in turning off colour management for the RGB space, which helps when creating brand new source files. But what happens when an existing file has an embedded colour profile? How do you get that to render accurately when saved out to a web-friendly file format?
A couple of years ago I wrote up my best guess. Converting from whichever profile the source file uses to a generic monitor profile would get you closer to an accurate result when saved out as a GIF. If I have source imagery in sRGB, a quick convert to the generic “Color LCD” profile takes care of things.
And that’s probably as far as most people will ever need to worry about. It’s good enough for most web work. But I just stumbled across a problem that, while an edge case, has turned me around completely. I used to think colour profiles were a solved problem. Now I have to wonder whether I can ever rely on them.
Over the weekend I released a new, free mini-set of icons. This is the first time I’ve produced a Chalkwork set on a new computer; since I started working on the set a few years ago I had done everything on an iMac that I no longer own.
That’s relevant because when I was originally struggling with this colour profile issue, my solution was to convert from sRGB to a profile called “Working RGB - iMac”. I had embedded the results of that particular profile into an icon set with thousands of files, and going forward, I needed to continue using it to ensure any new sets would match my previous work. This is an icon family with a common palette; colour precision is pretty darn important.
I realized I needed to save out that profile somehow. There still doesn’t seem to be a facility built in to save and load custom colour profiles as of CS4, but you are able to expose the numbers behind each profile by selecting it in the Convert To dialog, then immediately after selecting “Custom RGB”. This pops up a new dialog with Gamma, colour temperature and so on. You can set these values manually using the same dialog, so I figured this was a roundabout way to save and load a profile.
Sometime last year I pulled out all these numbers and saved them on my hard drive as a text file that looks like so:
Name: Chalkwork Icons Gamma: 1.80 White Point: Custom x y White: 0.2819 0.2942 Primaries: Custom x y Red: 0.6331 0.3404 Green: 0.2855 0.5943 Blue: 0.1273 0.0603
Armed with that file (which I don’t understand in the slightest) and detailed instructions for myself about converting profiles and saving out the icons every time I produce an icon set, I figured I had my rear covered for the next time I wanted to do it. You can see where this is going: the profile above isn’t even close on the new computer. I ended up spending an hour or so testing different profiles to find a new one that was closest to the original, and the one I had previously saved isn’t it.
Below you’ll see two icons saved to various profiles, the arrow is from an older set and the credit card is from the new set:
With the exception of the actual icon files on the far right, each is saved using my regular process: I took the raw, unprofiled pixels, converted to sRGB, then converted to the respective colour profile, then saved. (Though with the sRGB example I did convert back to a generic color LCD profile for the sake of rendering it accurately here.)
The differences seem a bit slight in some of them, so I’ve taken the blue outline colour and filled an entire block with it in this next image which more clearly shows the differences:
It took a lot of experimentation, but in the end it seems that Apple RGB is currently the closest match; even in the blue strips it’s hard to see any difference, but there’s a block above the word “Actual” which is slightly duller (#1C356C vs. #19366E) that shows the difference between the old icon save process and the new one. It’s a slight difference, sure, but knowing that I can never match the older icon sets precisely is going to bug me.
So I’m really not sure what I’ve learned here. I think I fundamentally understand colour profiles at this point, but I don’t seem to be able to duplicate past results using them. Is it a version difference between CS2 (what I used prior) and CS4 (what I’m using now)? Is it a hardware difference between two Macs? I thought the entire reason for profiles in the first place was to alleviate those issues. I need precision, but I don’t seem to be able to achieve it.
My ideal of having a way of carrying a previous profile forward doesn’t seem to exist, so I’m really not sure how to plan for future icon sets. My best guess is to hope that sRGB and Apple RGB stick around, and rely on them in the future; will my next Mac produce the same results that this one does? Who knows. I can’t trust that what I just did this past weekend will work in the future. And that really bothers me.
Anyone from Adobe well-versed in colour profiles would be more than welcome to respond here.