$npx skillfedfor your agent

epaper-dithering

Dithering algorithms for e-paper/e-ink displays

With conditionsPyPI GraphicsReleased Jul 202689.3K downloads / moMITPlatform wheel

Decision gist · record as of 2026-08-14

platform wheels — epaper_dithering-6.0.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl · epaper_dithering-6.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl · epaper_dithering-6.0.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
v6.0.0 · released 2026-07-23 · Python >=3.11 · 1 runtime deps: pillow

Yes, if you are building e-paper or e-ink display applications. The library is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and provides a well-documented API with pre-built wheels for modern Python versions. Install friction is moderate but manageable. Not relevant for general image processing or non-display use cases.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.11 or later; pillow must be installed as a runtime dependency.
  • Medium install friction due to compiled Rust extension requiring platform-specific wheels, but wheels are pre-built for Python 3.11–3.13 across macOS, Linux (x86_64, aarch64, armv7l), Windows, and musl systems.
  • Active maintenance with recent release.

License · maintenance · safety

MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal obligations.

last release 2026-07-23 (22 days) · last repo commit 2026-07-23 · 10 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 89,340 downloads/mo, #13,669 on PyPI

Verify before relying

from epaper_dithering import dither_image, ColorScheme, DitherMode
import pillow

image = pillow.Image.open("photo.jpg")
dithered = dither_image(image, ColorScheme.BWR, mode=DitherMode.FLOYD_STEINBERG)
dithered.save("output.png")
  • Whether the ~30ms performance claim for 800×480 images holds across all supported platforms and dithering modes.
  • Whether OKLab color matching actually eliminates the achromatic-attractor bug mentioned, or if this is a relative improvement.
  • Exact behavior and visual quality differences across the ten dithering algorithms in practice.
Same gist for agents: .md · .json

What it is and what it does

epaper-dithering is a Python library that dithers images for e-ink and e-paper displays with limited color palettes. It wraps a Rust core to apply one of ten dithering algorithms (from simple ordered dithering to Jarvis-Judice-Ninke) across ten color schemes ranging from monochrome to 7-color Spectra displays. The library uses perceptually weighted OKLab color matching to preserve hue and includes pre-dithering adjustments for exposure, saturation, shadows, highlights, dynamic-range compression, and gamut compression.

Typical use is loading an image with pillow, calling dither_image() with a chosen color scheme and algorithm, and saving the result. The library handles RGBA compositing automatically and supports serpentine scanning to reduce directional artifacts. It targets developers building e-paper display applications who need fast, high-quality image conversion without manual color space tuning.

Use it for

  • Convert photographs for e-ink price tags or shelf displays that support 3–7 color palettes.
  • Batch-process images for e-paper photo frames with grayscale or limited-color output.
  • Prototype dithering results across multiple algorithms and color schemes to find the best visual match for a specific display.
  • Apply tone and gamut compression to images before dithering to compensate for e-paper's limited luminance range.
  • Generate monochrome or 3-color dithered previews for testing e-ink display firmware or hardware designs.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you are building e-paper or e-ink display applications.

The library is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and provides a well-documented API with pre-built wheels for modern Python versions. Install friction is moderate but manageable. Not relevant for general image processing or non-display use cases.

Install

epaper-dithering on PyPI

Before you install

Medium install friction due to compiled Rust extension requiring platform-specific wheels, but wheels are pre-built for Python 3.11–3.13 across macOS, Linux (x86_64, aarch64, armv7l), Windows, and musl systems. Active maintenance with recent release.

Requires Python 3.11 or later; pillow must be installed as a runtime dependency.

License in practice

MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal obligations.

Quickstart

from epaper_dithering import dither_image, ColorScheme, DitherMode
import pillow

image = pillow.Image.open("photo.jpg")
dithered = dither_image(image, ColorScheme.BWR, mode=DitherMode.FLOYD_STEINBERG)
dithered.save("output.png")

Verify before relying

  • Whether the ~30ms performance claim for 800×480 images holds across all supported platforms and dithering modes.
  • Whether OKLab color matching actually eliminates the achromatic-attractor bug mentioned, or if this is a relative improvement.
  • Exact behavior and visual quality differences across the ten dithering algorithms in practice.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.11
Install frictionMedium. Platform-specific wheel
Runtime dependencies
1 package
pillow
MaintenanceActively maintained 22 days since the last release
Last repo commit
First released
Downloads89,340 / month, #13,669 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Multimedia :: GraphicsTyping :: Typed

Evidence: epaper_dithering-6.0.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; epaper_dithering-6.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; epaper_dithering-6.0.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; epaper_dithering-6.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; epaper_dithering-6.0.0-cp311-cp311-musllinux_1_2_aarch64.whl; epaper_dithering-6.0.0-cp311-cp311-musllinux_1_2_x86_64.whl; epaper_dithering-6.0.0-cp311-cp311-win_amd64.whl; epaper_dithering-6.0.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; epaper_dithering-6.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; epaper_dithering-6.0.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; epaper_dithering-6.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; epaper_dithering-6.0.0-cp312-cp312-musllinux_1_2_aarch64.whl; epaper_dithering-6.0.0-cp312-cp312-musllinux_1_2_x86_64.whl; epaper_dithering-6.0.0-cp312-cp312-win_amd64.whl; epaper_dithering-6.0.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; epaper_dithering-6.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; epaper_dithering-6.0.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; epaper_dithering-6.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; epaper_dithering-6.0.0-cp313-cp313-musllinux_1_2_aarch64.whl; epaper_dithering-6.0.0-cp313-cp313-musllinux_1_2_x86_64.whl

Tags

Capabilities
e-ink image ditheringepaper display conversionlimited palette quantizationerror diffusion ditheringe-paper color schemes
Topics
e-ink-displayimage-quantizationrust-extension
PyPI keywords
epapereinkditheringimage-processingdisplay

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “e-ink image dithering”

  • epaper-ditheringConverts images to dithered output optimized for e-ink displays with…
  • etcpakCompresses image data into GPU-friendly texture formats (BC1, BC3,…
  • dask-imageDistributed image processing using Dask, enabling large-scale image…

Give your agent the search over MCP, or paste the wish link into any chat.

More Graphics packages

pillow Worth it
PyPI · Graphics · released Jul 2026

Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.

Install it if you need to work with images in Python—it is the de facto standard for this task.

MIT-CMUcompiled wheel · 3.10+
547.1Mdownloads / mo
fonttools Worth it
PyPI · Text Processing · released May 2026

fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.

Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.

permissive licensepure Python · 3.10+
235.9Mdownloads / mo
matplotlib-inline Worth it
PyPI · Graphics · released May 2026

Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.

BSD-3-Clausepure Python · 3.9+
130.5Mdownloads / mo
pymupdf Worth it
PyPI · Libraries · released Aug 2026

PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.

The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.

AGPLcompiled wheel · 3.10+
114.9Mdownloads / mo
pypdfium2 Worth it
PyPI · Libraries · released Aug 2026

pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.

Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.

permissive licensecompiled wheel · 3.6+
76.9Mdownloads / mo
altair Worth it
PyPI · Graphics · released Jun 2026

Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.

BSD-3-Clausepure Python · 3.10+
54.5Mdownloads / mo

See also color-operations · etcpak · pixeloe · pyoxipng · climage · brewer2mpl · colorthief · aggdraw · imgviz · kornia-rs