As any experienced digital photographer can tell you, the trick to getting repeatable color out of a lab is to get a good ICC color profile for the lab’s printer and using it for every print that you make. I’ve been a big fan of Dry Creek Photo’s printer profiling service for years; they work with labs to build quality profiles and then publish them for free on their website, along with some documentation on how to use them.

Unfortunately, actually using the profiles is a pain for most users. The process looks roughly like this:

  1. Using a color-profiled monitor, get things looking the way that you want on the screen. Save.
  2. Resize the image to the correct resolution for the print size and resolution that are required for your lab. Different labs want 300, 320, or 400 DPI.
  3. Convert the image to the color profile for that lab that you’re using. Possibly re-adjust colors slightly.
  4. Pad the image out to a specific number of pixels to keep the lab’s printer from trying to re-scale your image. The exact settings depend on the printer and paper size. There’s a big chart on Dry Creek Photo’s website.

That’s not a big deal if you’re printing one or two pictures for framing, but it’s a huge pain when you have dozens or hundreds of pictures to process. Photoshop actions can help, but it seems like something is always going wrong.

When Adobe released their Lightroom SDK, I had high hopes that it’d make it easier to automate most of this. Unfortunately, Adobe didn’t expose their profile conversion engine to the SDK in the first SDK release, so it’s not really possible to build pre-profiled images directly out of Lightroom without using some external tool to do the profile conversion. A few weeks ago, Timothy Armes released LR/Mogrify, which uses ImageMagick’s mogrify command-line tool for profile conversion. It’s a cool tool, but it replaces a 5-6 step process in Photoshop with a dozen text boxes that you need to fill in to get good results. It shows promise, but it’s not quite the tool that I’m looking for.

What I really want is a Lightroom export plugin that asks you three simple questions:

  1. Where are you going to print this?
  2. Which paper are you going to use?
  3. What size do you want?

Then it does all of the hard work on its own. It’d fetch the correct profiles from Dry Creek, install them, figure out which resolution to use, handle image rotation, do some amount of pre-print sharpening, and then spit out a JPEG for you. Yeah, you could do a bit better with Photoshop and spending some time dealing with soft-proofing and sharpening, but I’m not willing to do that for 50 4x6 prints.

I’ve spent a bit of time this week building the first part of the tool–a machine-readable profile database. I’ve extracted a list of 765 current ICC profiles from Dry Creek Photo’s website, discarded the profiles that haven’t been updated in years, and produced an XML file that looks sort of like this:

<lab>
  <name>Costco #747</name>
  <address>24008 Snohomish-Woodinville Rd. SE, Woodinville, WA 98072</address>
  <phone>425-806-7708</phone>
  <printer>Noritsu 3411</printer>
  <paper>Fuji Crystal Archive</paper>
  <resolution>320</resolution>
  <notes>Note: This lab has multiple printers. Request your profiled prints be run on Noritsu 34?Pro-B.</notes>
  <profile>
    <name>Glossy paper profile</name>
    <date>January 17, 2008</date>
    <url>http://www.drycreekphoto.com/icc/Profiles/IccFiles/Washington/Costco-WA-Woodinville-Gls.icc</url>
  </profile>
  <profile>
    <name>Lustre paper profile</name>
    <date>January 17, 2008</date>
    <url>http://www.drycreekphoto.com/icc/Profiles/IccFiles/Washington/Costco-WA-Woodinville-Lus.icc</url>
  </profile>
  <size>4x6in</size>
  <size>5x7in</size>
  <size>8x10in</size>
  <size>8x12in</size>
  <size>12x12in</size>
  <size>12x18in</size>
</lab>
<lab>
  ...

The <resolution> and <size> blocks are semi-manual additions; the import script sets resolution automatically when it sees a printer type that only has one resolution setting, but Noritsu 3XXX printers can run at either 320 or 300. I’ve filled in the one or two labs that I use most frequently, and I’ll to add others as time permits. The <size> bit is fully manual, and I’m not really sure that it’s worth the effort to populate.

Right now, the XML file lists 380 labs. Entertainingly, that’s 379 Costcos plus Adorama. It looks like Dry Creek has dropped almost everyone else. If there’s a second source of non-Costco profiles, I’d love to know about it.

So, anyway, I have this XML available at http://profiles.sigkill.org/profiles.xml. It’s mostly automatically generated, and I can rebuild it in under 5 minutes. I’ll keep it up to date if people are interested in the data, if not it’ll die off eventually. If you have a tool that wants to use it, then send me mail and let me know that it’s useful. If you have any changes that you’d like to see, or anything that I should add, let me know and I’ll see what I can do.