Dither Image

1-bit black & white via Floyd–Steinberg — retro Mac, zine and e-ink looks.

About this tool

Three dithering styles — Floyd–Steinberg's organic grain, Bayer's ordered crosshatch, and stark threshold — plus a chunkiness slider that sets the dot size. Pure black-and-white output, rendered on your device.

How two colours fake a photograph

Dithering is the art of lying with dots: given only black and white, arrange them so the eye's own averaging reconstructs the grays. Floyd–Steinberg (1976) does it by honesty about error — each pixel rounds to black or white, and the rounding ERROR is pushed onto unprocessed neighbours, so debts are repaid across the image and smooth gradients emerge from chaos. It's the algorithm behind the original Macintosh's entire visual identity, GIF's colour squeezing, and modern e-ink displays. Bayer/ordered dithering uses a fixed threshold matrix instead — the regular crosshatch texture of old game consoles, cheaper to compute and very much its own aesthetic. Plain threshold (every pixel votes black or white alone) destroys gradients and makes great posters from high-contrast sources. The dots enlarge beautifully with the pixel art scaler — dither small, scale 4×, and the grain becomes chunky wall art. Posterize is the opposite philosophy: keep few tones, arrange nothing. Binary, explained from zero is the deeper story of 1-bit.

Frequently asked questions

Which dither style should I use?

Floyd–Steinberg for photos — its irregular grain reads most naturally. Bayer for the retro-videogame crosshatch. Threshold for stark two-tone poster art from high-contrast sources.

What does the chunkiness slider do?

Processes the image at a lower resolution, then scales the dots up as crisp squares — bigger dots read more retro and survive social-media compression better.

Why is dithered art good for e-ink?

E-ink panels are natively black-and-white — a pre-dithered image displays exactly as designed instead of trusting the device's own (often cruder) conversion.

Is the output really just two colours?

Pure #000 and #fff, nothing between — that's the 1-bit constraint the whole aesthetic grows from. Zoom in and every dot is a decision.