PNG DITHERING TOOL · FREE · NO UPLOAD
PNG Dithering Tool
Turn photos into 1-bit art, retro-game sprites, or print-style halftones. Pick an algorithm — Floyd–Steinberg for organic error diffusion, Bayer for that ordered retro grid — tune palette and levels, and preview live before exporting.
Drop files here or
Processed locally in your browser — nothing is uploaded. Batch supported.
0 uploads — verified locally 0 uploads
The 2026 state of PNG Dithering Tool
| Field | 2026 state |
|---|---|
| Floyd–Steinberg | Error diffusion, 16th-fraction kernel (7/16, 3/16, 5/16, 1/16); the "analog" look |
| Ordered (Bayer) | Recursively generated threshold matrix; sizes 2/4/8; the "retro game" look |
| Palette | Monochrome · 4-gray · custom N-level (2–16) |
| Color dithering | Per-channel error diffusion for colored output |
| Live preview | Regenerates on any param change (debounced) |
| Typical uses | 1-bit e-ink art · pixel-art bases · print zines · PS1-style textures (trending 2025–26) |
| Browser load | All pixel math client-side; a 12MP photo dithers in ~1s |
| Export | PNG, original dimensions |
Code example
// Floyd–Steinberg core (see /js/engine/dither.mjs for the full version)
const nv = old > 127 ? 255 : 0;
const err = (old - nv) / 16;
g[x+1][y] += err*7; g[x-1][y+1] += err*3;
g[x][y+1] += err*5; g[x+1][y+1] += err*1;
FAQ
What is dithering used for?
Reducing an image to few colors while keeping the illusion of shading — essential for 1-bit e-ink displays, retro game assets, low-color print, and the current wave of PS1/retro aesthetics.
Floyd–Steinberg vs Bayer — which should I pick?
Floyd–Steinberg diffuses error smoothly and looks organic; Bayer uses a fixed threshold grid and looks deliberately patterned (the classic "ditherpunk" style). Try both — the preview updates live.
Does dithering reduce file size?
Yes, dramatically: a 1-bit palette PNG can be 10–50× smaller than the photo it came from, which is why dithering matters for web performance on low-bandwidth sites.
Can I dither to specific colors, not just grayscale?
Yes — switch to color mode and set palette levels per channel. The tool diffuses error per channel.
Last updated: · Launch: FS + Bayer(2/4/8) + ordered, palette levels, live preview · change history