Today I finally solved a terrible problem that has been keeping me from wanting to take pictures. First, some background.
Color profiles are basically config files for your OS/applications that tell your computer the color personality of your monitor. Every monitor displays colors a little differently. One monitor may show more green than another, etc. Using special devices called colorimeters, your computer can examine its attached monitor and record exactly which colors are too dark and which are too bright, and then adjust the OS accordingly, to match the universal standard. The idea being that, if everyone does this, pictures will look the same no matter where they’re printed or displayed. Of course, it doesn’t actually work very well, but it’s better than nothing. For one thing, there are multiple “universal standards” as to which color gamut is correct for a given situation. Also, some monitors just plain suck, and no amount of calibration will get them to display colors properly. If one spends a lot of time tweaking an image on their computer, so that it looks good on their uncalibrated monitor, it will look bad to everyone else.
I use Aperture, Apple’s image management program, as a repository for all my photos. Occasionally I will export an image and look at it in a different program on my computer to see if they look the same (just a little color profile verification.) Well, for a couple of weeks now, they’ve always looked like crap outside of Aperture. Today I finally found out why.
I have two monitors on this computer (which is a PowerMac G5): a Dell 3007WFP-HC 30″ and a very crappy Gateway 21″. I say crappy because I calibrated it and it still looks terrible. But it’s fine for email, and really everything else, except picture work. Aperture has this cool feature where it will use your secondary monitor as a dedicated full-screen viewer for whatever picture you’re working on. So, say I’m browsing my projects in Aperture, and I click an image, instead of it displaying in a tiny window among all the command bars, it displays 100% full screen on the other monitor. Naturally I want this monitor to be the 30″. Unfortunately Aperture will only let you use your “secondary” monitor. Your “primary” monitor is the one with the menu bar and dock on it. Fine, I say, I’ll use the crappy Gateway as my primary and the 30″ as the secondary. Mind you, this is an OS-wide preference, you can’t change it just for Aperture.
This is where the problem comes. I use Safari to verify the color of my pictures outside of Aperture. I much prefer Firefox as a web browser, but it is very, very bad at dealing with color profiles and is thus useless for this purpose. (IE is no better, really the only browser that gets it right is Safari). However, when you launch Safari, it chooses a color profile for itself, and sticks with it. It chooses the profile of your primary monitor. And even if you drag the Safari window to your secondary monitor, it still uses the primary profile. So, Safari has itself configured to make pictures look nice when they’re displayed on that crappy Gateway, even when they’re actually being displayed on the nice Dell. The result was extreme-oversaturation.
The specific issue here is that Safari does not change profiles when you move it to another window. Almost all built-in MacOS X programs behave properly, changing the profile on the fly, to whichever suits the monitor it’s being displayed on. Preview does this just fine. But Safari does not. This is very, very strange, because OS X has the best multi-monitor support in any OS, and Safari comes with the operating system.
So, now if I want pictures in Safari to look good on my 30″, I have to temporarily change the 30″ to be the primary (which means I can’t use it as a dedicated full screen picture viewer in Aperture), launch Safari, and then change back again. Pretty stupid. Maybe Leopard will be better.