UtilityEntertainment

Image Dithering

Apply error-diffusion and ordered dithering to any image. Choose Floyd-Steinberg, Atkinson, or Bayer 4×4 / 8×8, plus retro palettes — Game Boy, NES, CGA, Amiga. Browser-only, no upload.

Algorithm

Palette

2 colors

Dithering intensity. 0 = pure palette mapping, 100 = standard.

Higher = chunkier pixels, faster render. Output upscales to original size.

What dithering does

Dithering is the trick that lets a small fixed palette look like it has many more colors than it does. Instead of mapping each pixel to the nearest available color and accepting the banding, dithering spreads the rounding error across neighbouring pixels — the eye averages the dots and perceives a smoother gradient.

The technique drove the entire 1980s and 90s era of constrained graphics: Game Boy screens with four greens, NES with 8 effective colors, CGA monitors, dot-matrix printers, early newspapers. Today it's mostly an aesthetic choice — a way to give modern photos the visual texture of those constrained eras.

Algorithm comparison

AlgorithmFamilyLooks like
Floyd-SteinbergError diffusionThe classic. Soft, organic noise. Works great for photos.
AtkinsonError diffusionLighter than FS. Bill Atkinson's dither from the original Macintosh.
Bayer 4×4OrderedRegular cross-hatch pattern. Retro screen feel.
Bayer 8×8OrderedFiner pattern, more tonal range than 4×4.
ThresholdNoneNo dithering. Hard color mapping — shows the palette as raw bands.

Error diffusion algorithms walk the image left-to-right, top-to-bottom; the difference between the original color and the closest palette color is sprinkled onto upcoming pixels. The result looks irregular — great for photos. Ordered (Bayer) algorithms use a fixed threshold map; the pattern is regular and looks “screened.”

Palette presets

  • 1-bit B&W. Pure black + white, like newspaper halftones or e-ink screens.
  • Game Boy. Four greens of the original DMG Game Boy. Iconic look for any pixel-art adjacent project.
  • CGA. The classic 4-color IBM CGA palette: black, cyan, magenta, white. Aggressive and recognizable.
  • NES (8). Eight colors chosen for screen UI. Punchy and saturated.
  • Amiga (16). A balanced 16-color set from the 1980s home computer era.
  • 27 / 64 colors. Evenly-spaced RGB cubes (3³ / 4⁴). Modern reduced palettes for digital art posters.

Resolution and strength

The Resolution slider downsamples the image before dithering. Higher downsample numbers produce chunkier “pixels” in the output and dramatically speed up the render — useful when you want that retro low-res aesthetic, and necessary on big photos where full-resolution dithering can take a few seconds.

The Strength slider controls how aggressively error is propagated (for error diffusion) or how strong the ordered threshold is (for Bayer). 0% gives plain palette mapping (banded). 100% is the canonical algorithm. Above 100% over-pushes the error, producing more noise and a grainier look.

Privacy

The image is dithered pixel-by-pixel inside your browser. The output canvas is exported as a PNG locally. Nothing is uploaded.