← ImgScalePIXELLAB
Deep Dive · Pixel Art

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 Converter

The 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

Floyd–Steinberg — error diffusion

Floyd–Steinberg is the most widely used dithering algorithm. Here's how it works, step by step:

  1. Process pixels left-to-right, top-to-bottom
  2. For each pixel, find its nearest palette color and record the quantization error (the difference between the original color and the palette color)
  3. 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
  4. 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

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

Side-by-side summary

ModeAlgorithmLookBest for
NoneNearest-neighbor onlyClean, flat, crispIcons, logos, flat art, 16+ color palettes
Floyd–SteinbergError diffusionOrganic, grainy, smooth gradientsPortraits, photos, sky gradients, 1-bit
Ordered (Bayer)Threshold matrixRegular pattern, graphic, structuredLandscapes, 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 — free

Related: Retro Palette Guide · Complete Pixel Art Guide