Skip to content

Floyd–Steinberg, Bayer and Atkinson dithering compared

Choose a dithering method by comparing gradients, outlines and texture. Practical settings for still images, plus how error diffusion, Bayer patterns and halftones work.

By ToolsNow · Published · updated

Start with Floyd–Steinberg for a photograph, Bayer for a regular pixel pattern, or None for clean areas of flat colour. Compare them with the same palette and resolution so you can see what the method alone changes.

In the dither tool, watch a smooth area such as a sky, a sharp outline and the darkest part of the subject. A method that helps one of those may make another harder to read.

Choose a starting method

Result you wantStart withLook for
Shading in a still photo with few coloursFloyd–SteinbergGradients that remain readable without distracting speckles
A regular retro textureOrdered 4×4 (Bayer)A grid that suits the image at its final size
A stark, high-contrast treatmentAtkinsonLost highlights or shadow detail
Flat icons or logosNoneClean shapes and enough separation between colours
Black-and-white line art or scanned letteringThresholdThin strokes that disappear or letters that fill in
A printed-dot effectHalftoneDot spacing and size that leave the subject recognisable

Threshold is worth trying for text, but a faint or uneven scan may need more careful cleanup. Preserve the original if legibility matters more than the effect.

Compare the image before changing the palette again

Choose Black and white, a built-in palette, or From this image. For an extracted palette, start with a modest colour count, such as eight, then see whether important areas need another shade.

Switch between None, Floyd–Steinberg and Bayer while keeping the other settings steady. Inspect at normal viewing size as well as with Preview zoom. A texture that looks rough close up may make a gradient easier to read when reduced.

If a colour essential to the picture is missing, change the palette. No dithering method can produce a close match from an unsuitable set of colours. You can also make a palette with colour extraction and import it here or in the pixel-art tool.

Floyd–Steinberg: fine, image-dependent texture

Floyd–Steinberg rounds a pixel to a palette colour and passes the difference to nearby pixels that have not yet been processed. This can preserve the impression of gradual shading with a small palette.

The texture can form streaks or worm-like patterns, especially in smooth areas. Try a different palette or method if the pattern becomes more noticeable than the subject. It is a useful starting point for photographs, not a best result for every picture.

Atkinson: stronger separation between light and dark

Atkinson also spreads error, but passes on only three quarters of it. The result often has more open white areas, solid dark areas and a lighter stipple between them.

Try it on a portrait or bold illustration when you want that graphic treatment. Check pale details and deep shadows: either can merge into the background. Brightness and contrast adjustments can help, but cannot preserve every tone in a very small palette.

Bayer: a pattern fixed to the pixel grid

Bayer applies a repeating threshold tile instead of passing error from one pixel to the next. The tool offers 2×2, 4×4 and 8×8 patterns. Compare them at the intended output size; a larger tile is not automatically better.

In animation workflows, the fixed grid can reduce the unstable texture associated with error diffusion. It does not guarantee flicker-free motion: moving edges, changing colours and changing palettes still affect the pattern. The tool here exports still PNGs, not an animated sequence.

Regular patterns can also compress differently from diffusion noise. If file size matters, compare the actual PNGs rather than assuming one method will be smallest.

Halftone: control the size and spacing of the marks

Switch to Halftone for circles, squares or lines whose size represents tone. Start with the default 45° angle, then adjust Dot spacing and Dot size while watching facial features, lettering and thin lines.

Pattern interference, or moiré, depends on both the source and output scale. An angle change can help; 45° is not a guarantee. The colour-screen option is a visual effect, not a calibrated press separation or print proof.

Check the export dimensions

The current tool works from an image capped at 1600 pixels on its longest edge. The Resolution slider reduces that working image further. Even at 100%, a larger original is not processed at its full source resolution.

The PNG 1×, 2× and 4× buttons save that result at whole-number multiples. Enlarging makes its marks bigger; it does not recover source detail. PNG keeps the generated pixels without adding JPEG compression artefacts.

How the methods work

For a left-to-right pass, Floyd–Steinberg distributes error with these weights around the current pixel, marked X:

        X    7/16
 3/16  5/16  1/16

The weights sum to one. That does not mean every implementation conserves every error value: boundaries, clipping and transparency handling matter. Atkinson uses six neighbours at 1/8 each, totalling 6/8.

A common 4×4 Bayer tile is:

 0  8  2 10
12  4 14  6
 3 11  1  9
15  7 13  5

Its values become position-dependent offsets before palette matching. Centred offsets avoid introducing a one-sided brightness bias.

For circular halftone marks, area grows with the square of the radius. A square-root relationship between darkness and radius is therefore a starting point for controlling coverage. Overlap, screen geometry and printing behaviour complicate the final tone; a simple on-screen effect does not model all of them.

Sources and further reading

Last reviewed 2 October 2026.

Published by ToolsNow. Read how tools and sources are checked.

Found a mistake or an outdated detail? Send a correction with the article title and the detail to review.