Skip to content
ToolsNow
Guides All tools
Creative

Dither and halftone image converter — error diffusion and print screens

Reduce an image to a small palette with error-diffusion or ordered dithering, or screen it into printer’s halftone dots. Heavy work runs in a background thread, so the page stays responsive. Nothing is uploaded.

Runs in your browser — your input is not uploaded to ToolsNow.

Your files are processed locally in your browser and are not uploaded to ToolsNow.

Dithering runs in a background thread so the page stays usable, and the job is cancelled the moment you change a setting — which is why moving a slider does not queue up work. Large images are processed at a capped working size for the preview; raise the resolution slider before exporting if you need the full detail. Halftones are drawn as individual shapes, so cost depends on the dot count rather than the image size: very small spacing on a very large image is refused and the spacing raised, with the figure shown, rather than the tab hanging. Output is PNG, which is lossless — saving a dither as JPEG would blur exactly the hard edges the technique creates. Images up to 50 megapixels (about 8000 × 6000). Larger files are refused rather than risking the tab being closed by the browser.

How to use

  1. Add an image. Drop, choose or paste a picture.
  2. Choose dithering or halftone. Dithering picks between palette colours pixel by pixel. A halftone replaces regions with dots whose size carries the tone, which is how ink printing works.
  3. Pick a method or a dot shape. Floyd–Steinberg for gradient detail, Atkinson for crisper contrast, Bayer for the regular retro weave — or circle, square and line screens for halftones.
  4. Set the palette. Black and white, a palette taken from the image, a hardware palette, or your own imported hex list.
  5. Adjust brightness, contrast and gamma. Dithering to very few colours exaggerates everything, so a little more contrast usually helps and gamma controls where the mid-tones land.
  6. Export as PNG. At 1×, 2× or 4×. PNG is lossless — saving a dither as JPEG would blur exactly the hard edges the technique creates.

Questions

Which dithering method should I use?

Floyd–Steinberg is the sensible default: it conserves all of the error, so gradients keep the most detail. Atkinson deliberately discards a quarter of the error, which gives a crisper, higher-contrast result with blown highlights — the classic early Macintosh look. Bayer produces a regular repeating crosshatch that reads as deliberately retro and compresses well. Threshold does no diffusion at all and is the highest-contrast, lowest-detail option.

What is the difference between dithering and a halftone?

Dithering chooses between available colours pixel by pixel, so what you see is a pattern of pixels. A halftone replaces regions with shapes whose area encodes brightness, so what you see is a pattern of dots at a pitch you can pick. Dithering is a digital display technique; halftoning is how a printing press reproduces a photograph with one colour of ink.

Why is 45° the default screen angle?

Because the eye is least sensitive to a regular pattern at that angle, so the dot grid is least distracting and interferes least with horizontal and vertical detail in the image. The printing trade settled on it for single-colour work. Colour separations are offset from each other — traditionally 15° apart — for the same reason, which is what the colour separations option does here.

Why did my dot spacing get raised automatically?

Every halftone dot is drawn as an individual shape, so the cost depends on how many dots there are rather than on the image size. Very small spacing on a very large image runs into hundreds of thousands of shapes and would stall the browser for seconds. The tool raises the spacing to a workable minimum and tells you the figure rather than appearing to hang.

Why does the preview look less detailed than my original?

Large images are processed at a capped working size so that moving a slider gives an answer immediately. Raise the resolution slider before exporting if you need the full detail — the export uses whatever resolution the preview is showing.

Does the page freeze on big images?

It should not. Error diffusion is sequential by nature and cannot yield partway through, so it runs in a Web Worker rather than on the main thread. That also makes it genuinely cancellable, which is why changing a setting mid-run abandons the old job instead of queueing another one behind it.

Related tools