Wednesday, August 5, 2009

Make a Spyder2express color profile "stick" after standby/sleep

I recently bought a new Thinkpad X200s and it's quite nice. One symptom that affects many notebooks, perhaps exacerbated by newer LED backlights now in frequent use, is that LCD displays have a very "cold" or "blue" tinge. Apparently this makes them look "better" in store compared to older, yellowing screens; anyway...

As any photo or design pro (which I am neither) will tell, doing any photo processing on a screen that has incorrect colors leads to bad results. For very "cool" screens, this results in garish and darkened flesh tones, and a some colour over-saturation. Since I will be on the road with this laptop and taking pictures, I decided to get a basic hardware screen colour calibrator, the Sypder2express from Datacolor which is under $100.

Now for my basic needs, this simple unit (pro units can cost hundreds or thousands) worked as advertised and as designed, and the software is kept up to date (Vista x64 support was a download away.) The problem that became apparent immediately was that the new colour settings in Windows were LOST every time the system resumed from sleep/standby.

According to Datacolor's support response (prompt, if a bit flippant) was that this is a Windows problem, not a product problem, and that they had a software workaround in, you guessed it, only in their more expensive products.

Not surprisingly, many tools out there are available that can help without a costly upgrade. The one I ended up using was xcalib, a command-line calibration tool for Windows and X. To solve my problem, I configured Windows to invoke on Resume, a script that runs the following commands (after copying xcalib.exe from the download link into my PATH):

  1. xcalib -clear
  2. xcalib
The first command clears any existing color settings in your video card. The second one (re)applies your default color calibration settings that the Spyder2express tool generated and installed into Windows.

Alternatively, you can configure the second command to run "xcalib " to apply a specific color profile. For example, to explicitly apply the Spyuder2express color setting installed into Windows, you would run:

  1. xcalib -clear
  2. xcalib c:\windows\system32\spool\driver\color\Spyder2express.icm
I found that for some reason, xcalib would on occasion not apply the color file properly. Adding the "-clear" command first fixed this; it may not be necessary on all systems.

To figure out how to configure Windows to run a script on Resume (after Sleep/Standby/Hibernate) see my next blog post. In my case, I created a "WAKEUP.BAT" system batch script and added the xcalib commands to it.

No comments:

Post a Comment