Adobe Photoshop is not inexpensive. But if you’re fortunate enough to already have it, this does make conversion a bit simpler.

To begin, download and unzip these Photoshop color tables:

Your source image should be in RGB mode (Image→Mode→RGB) if it isn’t already. Use the Image Size and/or crop tools to match the dimensions of your image(s) to your e-ink display.

Then we’ll do the e-ink conversion using Image→Mode→Indexed Color…

From the “Palette:” menu, select “Custom…” then click the “Load…” button to import one of the color tables from the ZIP you downloaded above. Use “eink-3color” to process images for 3-color displays, “eink-2color” for monochrome (black & white) displays.

Then experiment with settings in the Options pane to get the effect you desire (keep the “Preview” box checked to see the results interactively).

Diffusion dithering used here gives us the most bang-for-buck in most cases.

Try different “Amount” settings until you find the right compromise between “too contrasty” (lower values) and “too snowy” (higher values). This is very subjective and the ideal setting will vary from image to image!

eink___epaper_ps-dither-60.png
Too-low diffusion amount makes lighter areas “blown out.” (60%)
eink___epaper_ps-dither-80.png
80% seems a good diffusion amount for this image.
eink___epaper_ps-dither-100.png
100% has the smoothest transitions, but very “snowy” throughout.

Special Cases

A couple of alternate dither settings might be useful in certain situations…

Pattern dithering uses a uniform dot arrangement. It’s usually not the best for photos, as it tends to lose edge details, but may provide a “clean” look for flat artwork and diagrams:

eink___epaper_ps-dither-pattern.png
Pattern dither is not great for photos, maybe good for artwork.

Unlike ImageMagick (explained on the prior page), Photoshop just has one pattern dither setting, there are no available tweaks.

The “None” dither setting may be useful for text, high-contrast line art and 1980s Patrick Nagel prints:

eink___epaper_ps-dither-none.png
BRB, getting my nails done.

Photoshop also has a “Noise” dither setting — it looks okay for ultra-high-DPI printed matter but is not well suited for these displays.

Once you have a satisfactory conversion, it’s necessary to change the color mode back to RGB (Image→Mode→RGB Colordon’t simply Undo, we need the dithered version in RGB mode, not the original image), then select File→Save As… and use BMP (24 bit) as the file format. That’s what CircuitPython works with…it’s a relatively easy image format for microcontrollers to handle.

Some displays operate natively in a “portrait” orientation (tall vs wide). If your source image is in the opposite orientation, you have two choices…

1. In your CircuitPython code, instruct the display to use a different rotation setting, e.g.:

Download: file
display.rotation = 1

(try 0, 1, 2 or 3)

2. Alternately, leave the code unchanged and rotate the image using Photoshop:

Image→Image Rotation→90° Clockwise or

Image→Image Rotation→90° Counter Clockwise

Then save as a 24-bit BMP as described above.

This guide was first published on Sep 01, 2019. It was last updated on Sep 01, 2019.
This page (Convert With Photoshop) was last updated on Oct 15, 2020.