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 want | Start with | Look for |
|---|---|---|
| Shading in a still photo with few colours | Floyd–Steinberg | Gradients that remain readable without distracting speckles |
| A regular retro texture | Ordered 4×4 (Bayer) | A grid that suits the image at its final size |
| A stark, high-contrast treatment | Atkinson | Lost highlights or shadow detail |
| Flat icons or logos | None | Clean shapes and enough separation between colours |
| Black-and-white line art or scanned lettering | Threshold | Thin strokes that disappear or letters that fill in |
| A printed-dot effect | Halftone | Dot 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
- Floyd, R. W. & Steinberg, L. “An Adaptive Algorithm for Spatial Greyscale.” Proc. SID 17(2), 1976, 75–77
- Bayer, B. E. “An optimum method for two-level rendition of continuous-tone pictures.” IEEE ICC, 1973
- Ulichney, R. Digital Halftoning. MIT Press, 1987
- Ulichney, R. “Dithering with Blue Noise.” Proceedings of the IEEE 76(1), 1988
- Ostromoukhov, V. “A Simple and Efficient Error-Diffusion Algorithm.” SIGGRAPH 2001
- ISO 12647-2 — offset lithography process control
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.