Back to overview

epdoptimize – Open Source Dithering Library for eInk Picture Frames

Our JavaScript library epdoptimize is now open source! We use it internally for our picture frames here at paperlesspaper.de, and now you can start using it too.

Interactive Demo

Project on GitHub

Most existing libraries for eInk displays reduce colors through simple dithering – without considering that the actual colors of an eInk display are much less saturated than the digital values. The result: photos often look much paler than they should.

Realistischere Farben dank KalibrierungIMG_1512Realistischere Farben dank Kalibrierung

🌀 Dithering algorithms: Various methods for color reduction
🎯 Device-specific color calibration: For more realistic photo representation on eInk displays
📋 Calibration tables for different displays: e.g., Spectra 6 or AcEP
🧰 Runs in the browser & Node.js: Uses Canvas API or node-canvas

Das Bild wird erst gedithert und dann in die richtigen Farben übersetzteink-color-convertion-1Das Bild wird erst gedithert und dann in die richtigen Farben übersetzt

The library supports various error diffusion algorithms such as:

  • Floyd-Steinberg (standard)
  • Jarvis, Judice, and Ninke
  • Stucki, Burkes, Sierra (3 variants)
  • Random or ordered dithering (e.g., Bayer matrix)

With these algorithms, intermediate colors can be simulated – extremely important for displays with limited color depth.

eInk colors often look different from their digital color value (#FF0000 ≠ true red on display). With real measurements, the library calibrates images to come as close as possible to the physical result and then translates them back into the appropriate device colors.

We believe that technology gets better when shared. Instead of keeping our tools behind closed doors, we want to give other developers, tinkerers, and creatives the opportunity to build on our solutions.

Especially in the field of eInk, there are many great projects, but often few freely accessible tools. We hope that with epdoptimize, a few nicely dithered images will emerge.