Bayer dithering, done properly

Ordered dithering with real 2x2, 4x4 and 8x8 Bayer matrices. The crosshatch pattern stays steady, so it holds up in print and in motion.

Open the editor with this effect

What you get

A Bayer dither is the one you can recognise from across the room. Instead of scattering pixels at random, it compares every pixel against a small grid of thresholds and repeats that grid over the whole image. The result is a fine, regular crosshatch that reads as deliberate. It is the texture of early PC games, of Game Boy screens and of a lot of current poster work that wants to look digital on purpose.

How the matrix works

A Bayer matrix is a square of numbers arranged so that, as you raise the threshold, pixels switch on in a pattern that stays evenly spread. The 2x2 version only has four levels, the 4x4 has sixteen and the 8x8 has sixty four.

For every pixel, the algorithm looks up the threshold at that position in the tiled grid and asks one question: is this pixel brighter than the threshold? If yes, it becomes the light colour. If not, the dark one. There is no memory between pixels and no error passed along, which is why the output is so tidy.

That independence is also why ordered dithering is fast and predictable. Every pixel can be worked out on its own, so the pattern is the same no matter which order the image is processed in.

Picking 2, 4 or 8

Bayer 2 is chunky and loud. With only four tones it flattens a photo into a few strong steps, which suits small sprites, icons and graphics meant to be seen big and from far away.

Bayer 4 is the classic retro computer look. Gradients become a visible woven texture, but faces and shapes still read clearly. Most people searching for an ordered dither mean this one.

Bayer 8 is fine enough to pass as tone at normal viewing distance. Up close you see the grid, from a step back you see the photo. It is the best choice for large prints and for anything where the subject matters more than the texture.

Resolution changes everything. The matrix works in output pixels, so lowering the resolution slider makes the pattern bigger and more graphic, while raising it hides the grid.

Why it suits animation and print

Error diffusion methods like Floyd-Steinberg are lovely on a still, but their grain shifts every time the source changes, so a dithered video tends to shimmer. A Bayer pattern is anchored to the pixel grid. Areas that do not change stay identical from frame to frame, which keeps motion calm.

In print, the regular structure behaves well on risograph and screen printing, where random noise can clog or drop out. A coarse Bayer pattern survives the trip to paper better than fine diffusion grain does.

How to do it in Bitgrain

Open the editor from this page and the Bayer 8 setting is already selected. Drop in your own photo.

Open the dither panel to switch between Bayer 2, 4 and 8, or compare them against the error diffusion methods on the same image.

Move the resolution slider down until the pattern is the size you want, then nudge contrast so the subject separates from the background.

Add a palette if you want colour. Two or four colour palettes like Game Boy or CGA make the matrix sing. Export as PNG, or SVG if the file is going to a printer.

Common questions

What is the difference between Bayer dithering and Floyd-Steinberg?

Bayer is ordered dithering, it compares pixels against a repeating threshold grid and gives a regular crosshatch. Floyd-Steinberg is error diffusion, it passes rounding error to neighbouring pixels and gives an organic grain with no repeating pattern.

Which Bayer size should I use?

Use Bayer 2 for bold, small graphics, Bayer 4 for the classic retro computer look, and Bayer 8 when you want the photo to stay readable with a fine texture on top.

Can I use colour palettes with a Bayer dither?

Yes. Pick any palette in the editor, from Game Boy greens to PICO-8, and the matrix dithers between those colours instead of black and white.

Does the pattern stay sharp when I print it?

Export as SVG and every pixel becomes a vector square, so the pattern stays crisp at any size. PNG export works too, at full resolution on Pro.

Related tools