BlockPixelArt

How pixel art dithering actually works

Dithering trades one kind of error for another: it removes banding by adding texture. Whether that is a good trade depends almost entirely on how big your canvas is.

What dithering is actually doing

You have eight colours. The image needs a smooth transition from dark blue to light blue, and eight colours cannot express it — you get visible bands, each one a flat stripe with a hard step to the next. Dithering solves this by lying convincingly: it alternates two colours you do have in a fine pattern, and at normal viewing distance your eye averages them into a third colour you do not have.

That is the entire mechanism. A checkerboard of dark blue and light blue reads as mid blue. Two parts dark to one part light reads as something closer to dark. By varying the ratio across the gradient, a palette of eight can imitate a palette of several dozen.

The cost is that the lie is made of texture. You have not actually removed the error between what you wanted and what you can display — you have redistributed it, from a few large obvious steps into many small ones scattered across the area. Whether that is an improvement depends on whether the viewer perceives the scattered version as texture or as damage, and that turns almost entirely on scale.

This is why dithering was everywhere in the era of 16-colour displays and is comparatively rare in modern sprite work. Those systems had no choice. A modern artist choosing a small palette is choosing it deliberately, and the flatness that comes with it is usually the point.

Two families of pattern, and how they differ

Every dithering method belongs to one of two families, and they fail in different directions — which is the useful thing to know when picking one.

Ordered dithering compares each pixel against a fixed threshold matrix tiled across the image. The classic is the Bayer matrix, built recursively so that each doubling of size interleaves the previous one. A 2×2 matrix gives four threshold levels and a very coarse, obvious grid; 4×4 gives sixteen; 8×8 gives sixty-four and reads as a fine crosshatch. Because the matrix is fixed and tiled, the pattern is perfectly regular — which is exactly why it reads as deliberate, retro, and print-like. It is also why it can fight your artwork: the grid does not know where your edges are, and a regular pattern laid across an irregular shape draws attention to itself.

Error diffusion works differently. It quantises one pixel, measures how wrong the result was, and pushes that error onto neighbouring pixels that have not been processed yet, so their quantisation compensates. The result is an irregular, organic scatter with no visible grid. Floyd–Steinberg is the standard, distributing the error to four neighbours with weights of 7, 3, 5 and 1 out of 16. Atkinson — the one from the original Macintosh — distributes to six neighbours but only passes on six-eighths of the error, deliberately throwing away the rest. That discarded error is why Atkinson images look higher-contrast and cleaner in the light areas, and it is a real aesthetic choice rather than a bug. Sierra Lite uses only three neighbours and is the fastest of the three.

The practical summary: ordered patterns look intentional and stylised, error diffusion looks natural and photographic. Neither is more correct. If you want your work to read as retro, ordered is usually the answer; if you are converting a photograph and want the dithering to disappear into the image, error diffusion is.

All seven of these — none, three error-diffusion kernels, and three Bayer sizes — are switchable in the pixel art converter, which is the fastest way to see the difference on your own image rather than on someone's demo picture.

  • Bayer 2×2 / 4×4 / 8×8 — fixed tiled grid, regular, reads as deliberately retro
  • Floyd–Steinberg — the standard error diffusion, natural scatter, no visible grid
  • Atkinson — discards part of the error on purpose; higher contrast, cleaner highlights
  • Sierra Lite — three neighbours only, the fastest error diffusion

When to switch it off

The single most useful thing to know about dithering is that 'none' is a legitimate setting, and on small canvases it is usually the right one.

The reason is a ratio. Dithering needs room to work: the pattern has to be fine enough relative to the area it covers that the eye blends it instead of resolving it. On a 512-pixel-wide sky, a Bayer 8×8 pattern is a subtle texture. On a 32×32 sprite, that same pattern spans a quarter of the whole canvas — you are not seeing blended colour, you are seeing a checkerboard. Worse, on a sprite that will be displayed scaled up 8×, every dithered pixel becomes an 8×8 block, and the pattern that was supposed to be invisible becomes the most prominent feature in the image.

So the rule of thumb is about area, not aesthetics: dithering earns its place on large flat regions with genuine gradients — skies, water, metal, lighting falloff across a big surface. It hurts on small sprites, on anything with lots of edges and small details, and on anything that will be viewed at a large scale factor.

There is a second failure mode worth naming: dithering on an image destined for further compression. Dithered output is high-frequency noise by construction, and lossy compression is built to discard exactly that. Save a dithered image as JPEG and the compressor will smear the pattern into blotches — you get the cost of dithering with none of the benefit. Use PNG.

If you are unsure, the honest test is to look at the result at its actual display size rather than zoomed in. Dithering almost always looks impressive at 800% and frequently looks like dirt at 100%.

Doing it in practice

In a dedicated pixel editor, dithering by hand means placing the alternating pixels yourself, usually with a patterned brush or by drawing one checkerboard row and copying it. This is slow but gives complete control, and hand-placed dithering is a recognisable style in its own right — artists routinely use it as deliberate texture on specific surfaces rather than as a global gradient fix.

In Photoshop, dithering is applied at the moment you reduce the colour count: Image → Mode → Indexed Color exposes Diffusion, Pattern, and Noise options along with an amount slider. It is a one-way conversion, so comparing two settings means undoing and redoing from a saved copy — see the Photoshop setup guide for the rest of that workflow.

In a converter, dithering is a live setting applied during quantisation, which means you can flip between all seven modes and watch the same image change. That reversibility is the whole practical advantage: the question 'is dithering right for this image' is much easier to answer by looking at four versions than by reasoning about it. Load your image into the pixel art converter, set your palette first, then cycle the dither mode with the palette held constant — changing both at once tells you nothing about either.

One parameter worth knowing about: strength. Dithering does not have to be all or nothing. Reducing the amount of error that gets diffused gives you a partial effect that keeps some texture without committing to full scatter, which is often the right answer on mid-size canvases where 'on' is too much and 'off' bands visibly.

For choosing the palette that the dithering will work within, the pixel art generator starts you on a real hardware palette — and hardware palettes are exactly the constraint dithering was invented to work around, so they are a fair test of whether it is helping.

A note on a different kind of dithering

Search for dithering and you will find advice about converting 24-bit audio to 16-bit, along with questions like whether you should dither going from 32 to 24. That is a genuinely different subject that happens to share a name, and mixing the two up leads to confusing advice.

The shared idea is real: in both cases you are reducing precision, and adding a controlled small signal prevents the reduction from producing a structured artefact. In audio, reducing bit depth without dither creates correlated distortion that the ear picks out as harshness; adding noise turns it into a uniform hiss the ear ignores. In images, reducing the palette without dither creates banding; adding a pattern turns it into texture the eye averages.

But the practical guidance is opposite in an important way. In audio, the standard advice is to dither whenever you reduce bit depth, because the added noise is genuinely below the threshold of perception. In pixel art there is no such threshold — the pattern is fully visible, it is part of the artwork, and on a small canvas it dominates. So 'always dither when reducing' is correct for audio and wrong here. If a piece of advice about dithering mentions bit depth, sample rates, or 24-bit, it is not about pixel art.

Frequently asked questions

Is dithering good for pixel art?
It is good for large areas with real gradients — skies, water, big lit surfaces — and bad for small sprites, where the pattern occupies too much of the canvas to blend. It is a tool for a specific problem, banding, rather than a general improvement.
Should I turn dithering on or off?
Off is the safer default on anything under roughly 64 pixels, and on anything that will be displayed at a large scale factor, since every dithered pixel becomes a whole block. Turn it on when you can see banding across a large smooth area and reducing it matters more than keeping the area flat.
How to do dithering in pixel art?
Either place the alternating pixels by hand for full control, or apply it during colour reduction. In a converter it is a live setting — pick your palette first, then cycle the dither modes with that palette held constant, so you are comparing one variable at a time.
What is the difference between ordered and error-diffusion dithering?
Ordered dithering tiles a fixed threshold matrix such as Bayer, producing a regular grid that reads as deliberately retro. Error diffusion pushes each pixel's quantisation error onto its unprocessed neighbours, producing an irregular scatter with no visible grid that suits photographic conversion.
Should I dither from 32 to 24?
That question is about audio bit depth, not pixel art — the two fields share the word and the underlying idea, but not the advice. In audio you dither whenever you reduce bit depth, because the added noise is inaudible. In pixel art the pattern is fully visible and is part of the artwork, so it is a design decision every time.
Why does my dithered image look blotchy after saving?
Almost certainly JPEG. Dithered output is high-frequency noise by construction, and lossy compression is specifically built to discard high-frequency detail, so it smears the pattern into blotches. Save pixel art as PNG.

More pixel art tools

Same engine, same privacy, different job. Nothing here needs an account.