Halftone

Rebuild an image out of dots the way print does: four dot shapes, a cell size you set in pixels, and either one screen at your own angle or four at the traditional colour angles.

Drag & drop a file here, or

JPG PNG WebP GIF Max 50MB

Dot area is the tone

A cell that is 25% dark gets a dot covering 25% of it. Because coverage is an area, the diameter grows as the square root of the tone, not in step with it — which is why a 50% dot is about 0.8 of the cell wide rather than half.

Angles and rosettes

One screen sits at 45° because a diagonal grid is the least visible to the eye. Four screens keep the strong inks 30° apart — cyan 15°, black 45°, magenta 75° — and put yellow at 0°, which is how the rosette avoids turning into moiré.

100% private

Your image never leaves your device. Every screen is drawn on the Canvas API in your browser and the PNG is built locally. No upload, no storage, no account.

Advertisement

How it works

What a halftone screen actually does

Ink is either on the paper or it is not, so a press cannot print grey. It prints dots of solid ink at a fixed spacing and varies how big each one is, and past arm's length the eye stops resolving individual dots and reads the average instead. This tool does the same arithmetic: the image is divided into square cells of the size you choose, the average tone of each cell is measured, and one dot is drawn in that cell covering exactly that fraction of it. Nothing is estimated and nothing is judged — the cell is measured, the dot is drawn, and the line under the preview prints the parameters that produced it.

Dot area, not dot width

What the eye adds up is the inked area, so a cell at 25% tone needs a dot covering a quarter of it — which makes the dot half as wide, not a quarter as wide. Every shape here is sized from that rule: a round dot of diameter d inks π·d²/4 of its cell, a square inks s², a diamond inks half its diagonal squared, and a line screen band inks its width times the cell height. Solving each of those for the dimension gives a diameter that grows with the square root of the tone, and only the line screen — which grows in one direction — is linear in coverage. Getting this wrong produces output that still looks like a halftone while every midtone is off, which is why the arithmetic is stated here instead of described.

Angles, cell size and lpi

A single screen sits at 45° by default because a diagonal grid is the least visible pattern to the eye. Four-colour mode uses the traditional set — cyan 15°, black 45°, magenta 75°, yellow 0° — which keeps the three strong inks 30° apart so their overlap forms a rosette rather than a moiré, and puts the weakest ink where its own pattern shows least. Cell size is given in pixels because that is what a screen image has; the lines-per-inch figure next to it is conditional on printing the PNG at 300 DPI, and at any other output resolution the same file is a different screen ruling. Small cells read as a fine print screen, large cells as a comic or poster dot.

Where it runs, and what it is not

Everything happens in your browser through the Canvas API. The image is never uploaded, nothing is stored, and no account is needed. Large images are worked at up to 2048px on the long edge, and the source is never scaled up. One thing this is deliberately not: the four-colour mode is a screen simulation composited in RGB on your monitor, not a press-ready separation — there is no colour profile, no ink model, no dot gain and no overprint behaviour, so treat the output as an effect rather than as prepress artwork. To check whether a file is big enough to print at all, use the Print Readiness scanner; for the pixel-level version of the same idea, see Dithering.

Frequently Asked Questions

What cell size should I use?

Cell size is the spacing of the dot grid in pixels, and it decides the whole look. Three to five pixels reads as a fine print screen and keeps most of the detail. Eight is a good default. Twelve to twenty-four gives the big obvious dots of a comic panel or a screen-printed poster, at the cost of detail — a dot cannot show anything smaller than its own cell. If you plan to print the result, remember the dot grid is fixed in pixels: printing the same file larger makes the dots larger too.

Which dot shape is the right one?

Round is the standard and what most printing uses. Square dots meet at the corners earlier, so midtones jump more abruptly — a harder, more graphic look. Diamond is a rotated square and merges more gradually through the midtones, which is why it is a common choice for smooth skin tones. Line screen replaces dots with bands of varying thickness, the effect used in engravings and some poster work. All four size themselves by the same coverage rule, so switching shape changes the texture, not the tone.

Why is the screen angle fixed in four-colour mode?

Because those angles are the point of four-colour screening. Cyan at 15°, black at 45° and magenta at 75° keep the three strong inks 30° apart so their overlap forms a rosette instead of a moiré pattern, and yellow sits at 0° because it is the weakest ink and its own pattern is the least visible. Letting you move one of them would offer a rosette the tool does not draw. In monochrome there is only one screen and no interference to avoid, so the angle is yours.

Is the four-colour mode a real CMYK separation?

No, and it should not be used as one. It measures the cyan, magenta, yellow and black content of each cell, draws four screens at the traditional angles, and composites them in RGB on your monitor so you can see what a four-colour screen looks like. There is no colour profile, no ink or paper model, no dot gain and no overprint simulation. It is an effect. Real prepress separation needs a colour-managed workflow in print software, not a canvas in a browser.

What does the lpi number under the preview mean?

Lines per inch is how many rows of dots fit in an inch of printed paper, and it only exists once the image has a physical size. An image file does not have one, so the figure is stated conditionally: if you printed the PNG at 300 DPI, a cell of N pixels would be 300 divided by N lines per inch. Print the same file at a different resolution and it is a different screen ruling. That is the only honest way to quote lpi from a file, so the condition is printed with the number.

Does this upload my image anywhere?

No. The image is read into a canvas in your browser, every screen is drawn on that pixel data locally, and the PNG is generated on your device. Nothing is sent to a server, nothing is stored, and no account is required.

What is the difference between halftone and dithering?

Both turn continuous tone into a pattern of solid marks, but they place them differently. A halftone uses a fixed grid and varies the size of one dot per cell, which is what a printing press can physically do. Dithering keeps every pixel the same size and varies which pixels are on, either by carrying the rounding error into neighbours or by biasing the threshold from a matrix. Halftone looks printed; dithering looks like an early screen. Our Dithering tool covers the second case.

Why is the download a PNG and not a JPEG?

A halftone is hard-edged solid dots on flat paper, which is exactly the high-frequency detail JPEG discards first. Saving it as JPEG would blur the dot edges and ring around every one of them. PNG is lossless, so the file is pixel-for-pixel what the preview shows, and flat two-tone artwork compresses well in PNG anyway.