Here’s a Photoshop Action (i.e. a script) that I made to pre-dither an image so that it renders nicely on a display with 16-bit color (like Windows Phone 7).
A quick warning before you download it:the first thing this script will do is flatten your image (e.g. merge all layers into one). So don’t do this on your source. It’s pretty destructive.
How to Install and Use It
It’s super easy. There are 5 steps but these are pretty detailed. It will feel like it's about three. So here’s the step by step:
- Install the action by downloading the file and double clicking on it.
- Open the Actions palette in Photoshop. Do that by pressing Alt-F9 (or choosing Window > Actions).
- Expand the WP7 folder (I think it’s technically called a set) in the list of actions in the Action palette and choose the WP7 Dithering action. With that selected, run the action by clicking on the Play arrow at the bottom of the Actions palette. Again, don’t do this on a source file. It’s going to flatten your layers!
- It should prompt you about flattening your image. You need to say yes (unless you’ve already flattened it).
- At the end, you’ll get prompted about how to merge the RGB layers it created. I’ll explain more
about this in a bit, but for now choose:
- RGB Color in the Merge Channels prompt (this is not the default)
- In the Merge RGB Channels match the file with _R to Red, _G to Green, etc.
That’s it! Now you can export the image as jpeg or png and it should render nicely on the phone.
Why You Need This
A lot of handheld devices are capable of showing fewer colors than regular computer displays. The result is that an image that looks nice on your computer might look weird on a device like your phone. This is especially true with gradients or other smooth color transitions. You end with a lot of “banding”—the gradient looks like it has bands of color instead of smooth transitions between colors.
This action “pre-dithers” images. It basically reduces the colors that are used in the image ahead of time and uses a noise pattern to “dither” to make it look like the colors change more gradually.
In fairness, I’ve only tried this on a few images but, so far, with good results. Please let me know if it works for you (or, more importantly, if it doesn’t). I’m super open to improvements too. I’m no Photoshop wiz kid so I might be doing something inefficiently or, you know, stupid.