Dot Art Generator — Halftone Screens from Any Image
A halftone screen is a rotated grid of dots whose area carries the tone: big dots read dark, small dots read light. This one does it properly — the grid is generated in rotated space so there are no wedge-shaped gaps at the corners, and dot radius follows the square root of coverage because ink coverage is area, which is why hand-rolled halftones usually come out washed out in the midtones. Export a PNG for the web or an SVG of real vector paths for a cutter or a screen printer.
Private by design. Your image is halftoned locally with canvas and a web worker — it is never uploaded to a server.
How to turn a photo into halftone dot art
- Load a high-contrast image. Portraits, logos and anything with a clear light-dark separation screen best. A flat, low-contrast photo turns into a field of near-identical dots, because a screen can only show tone differences the source already has.
- Set the spacing, then the angle. Spacing is the character of the screen — tight for a fine print, wide for a poster. Angle breaks up the banding an unrotated screen shows against the pixel grid; 15° is the classic single-colour screen angle and 45° is the other one worth trying.
- Balance the midtones. Dot size scales every dot at once. The midtone slider is a gamma curve on the coverage before the radius is taken, so it redistributes tone instead of just making everything bigger — use it when the shadows have blocked up but the highlights are still empty.
- Export PNG or SVG. PNG for anywhere it is just an image. SVG when the dots need to be real paths — a vinyl cutter, a screen print separation, or any print that will be scaled up after the fact.
Use Cases
Frequently Asked Questions
What is a halftone screen?
The technique that lets a press printing one solid ink reproduce continuous tone: the image is broken into a grid of dots and the size of each dot controls how dark that patch reads from a normal viewing distance. Newspapers, comics and every Lichtenstein you have seen are halftone screens.
Why is the dot grid rotated?
An unrotated screen lines its dots up with the pixel grid and produces visible horizontal banding, and in multi-colour printing two unrotated screens interfere into a moiré pattern. Offset litho has used 15° for single-colour work for a century, with 0°, 15°, 45° and 75° being the set that does not interfere.
Why does my halftone look washed out?
Almost always because the radius is being scaled linearly with brightness somewhere. Ink coverage is area and area goes with r², so radius has to follow the square root of coverage — this tool does that, which is why its midtones sit heavier than a naive filter's. If it still looks light, lower the midtone slider.
What is the SVG export for?
Anything that needs real paths rather than pixels: a vinyl or laser cutter, a screen-print separation, or a poster that will be enlarged after the fact. The file stays small because each dot is one element, and it scales to any size without softening.
How do I stop the dots merging into a solid black?
Above roughly 85% ink coverage — shown under the preview — neighbouring dots touch and the image goes solid. Raise the midtone slider or drop the dot size. Changing the spacing also fixes it but changes the whole character of the screen, so try the other two first.
Can I keep the original colours?
Yes — the "Sampled colour" palette gives each dot the colour of the pixel underneath it, which produces a pointillist look rather than a print halftone. The four fixed palettes are for the classic single-ink and pop-art results.
Related tools
More free, in-browser tools from the Image Tools set — every one runs locally, with no sign-up and no upload.