Dithering Explained: Floyd–Steinberg vs Ordered vs None
By ImgScale Team · June 2026 · 5 min read · by kizura
Dithering is one of the most misunderstood settings in pixel art tools. It sounds technical but the visual effect is immediately obvious — and choosing the wrong mode can make or break a pixel art conversion. This guide explains what's happening under the hood and how to choose.
Open the Pixel Art ConverterThe problem dithering solves
When you convert an image to a limited palette (say, 4 Game Boy colors), many pixel colors in the original have no close match in the palette. Every pixel gets mapped to its nearest palette entry — but "nearest" can still be far away in color space. The result is harsh color banding: a gradient sky becomes three blunt bands of color instead of a smooth fade.
Dithering solves this by distributing the mapping error across neighboring pixels. Instead of one pixel being wrong by a large amount, many pixels are each wrong by a small amount — and from a viewing distance, the eye averages them together and perceives something closer to the original gradient.
None — clean and flat
With no dithering, each pixel is mapped to its nearest palette color with no correction. Every pixel is a pure palette color. The output has clean, crisp boundaries between color regions — no noise, no texture.
Use None when
- The image already has flat areas of color (logos, icons, flat-design illustrations)
- You want maximum control — no algorithm is adding anything
- You're working with the Auto palette with 24+ colors (fewer colors means smaller mapping errors — less need for dithering)
- You want a clean "sprite" look rather than a textured "photo converted to pixel art" look
Floyd–Steinberg — error diffusion
Floyd–Steinberg is the most widely used dithering algorithm. Here's how it works, step by step:
- Process pixels left-to-right, top-to-bottom
- For each pixel, find its nearest palette color and record the quantization error (the difference between the original color and the palette color)
- Distribute that error to the neighboring pixels that haven't been processed yet, weighted by their position:
- Right neighbor gets 7/16 of the error
- Bottom-left neighbor gets 3/16
- Bottom neighbor gets 5/16
- Bottom-right neighbor gets 1/16
- Those neighbors, when processed, start from a color slightly adjusted toward the error — making them more likely to choose a complementary palette color
The effect: adjacent pixels compensate for each other's errors, and from a distance you see blended intermediate colors that aren't actually in the palette.
Use Floyd–Steinberg when
- Portraits and skin tones — diffusion dithering preserves the appearance of smooth gradient across a face even with only 4–16 palette colors
- Sky gradients, sunsets — smooth color transitions need diffusion to avoid harsh banding
- Photographs in general — most natural photos have continuous tone gradients that benefit from diffusion
- 1-bit palette — black and white with Floyd–Steinberg looks like a halftone newspaper photo. Surprisingly detailed.
Side effect: Floyd–Steinberg can produce a slightly "noisy" or "grainy" look because the error diffusion follows image content unpredictably. This is not a bug — it's the algorithm correctly distributing error — but some people prefer the more ordered look of Bayer dithering.
Ordered (Bayer) — structured pattern
Ordered dithering, also called Bayer dithering, uses a different approach: instead of tracking and distributing error, it adds a fixed threshold pattern to each pixel's value before palette matching.
Specifically, it uses a 4×4 Bayer matrix — a grid of 16 threshold values from 0 to 15. For each pixel at position (x, y), it adds (bayer[y%4][x%4] / 16 - 0.5) * intensity to the color before finding the nearest palette entry. This creates a regular, repeating pattern across the image.
Use Ordered when
- You prefer a structured, graphic look — the regular cross-hatch pattern resembles a screen print or risograph technique
- Landscapes and geometric content — the regular pattern complements structured subjects better than random noise
- CGA palette — the structured pattern works particularly well with CGA's limited harsh palette
- Stylistic preference — many pixel artists strongly prefer Bayer for its predictable, controllable aesthetic
Side-by-side summary
| Mode | Algorithm | Look | Best for |
|---|---|---|---|
| None | Nearest-neighbor only | Clean, flat, crisp | Icons, logos, flat art, 16+ color palettes |
| Floyd–Steinberg | Error diffusion | Organic, grainy, smooth gradients | Portraits, photos, sky gradients, 1-bit |
| Ordered (Bayer) | Threshold matrix | Regular pattern, graphic, structured | Landscapes, CGA, stylistic pixel art |
Practical tip
Don't guess — just try all three. The Pixel Art Converter switches instantly between modes, so flipping through None → Floyd-Steinberg → Ordered on the same image takes about 3 seconds. The "right" choice is usually visually obvious immediately.
A common workflow: start with Floyd–Steinberg. If it looks too grainy or noisy, switch to Ordered. If the pattern feels too mechanical, try None with a higher-color Auto palette instead.
Try all three dithering modes — freeRelated: Retro Palette Guide · Complete Pixel Art Guide