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.
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.
🌀 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
The library supports various error diffusion algorithms such as:
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.