Stipple Effect: Draw a Photo in Dots
Every dot is the same size, so tone comes from how many there are rather than how large they get. Error diffusion decides where they go and a controlled wobble breaks the grid, which is what stops them clumping the way pure randomness does.
Drop images here
or click to browse · or paste with Ctrl+V
JPG · PNG · WebP · GIF · BMP · AVIF
The average distance between dots. Tighter spacing keeps detail; wider spacing is more obviously drawn.
Every dot is the same size, as it would be from one pen. Tone comes from how many there are, not how big they are.
At zero the dots sit on an exact grid and you can see it. Raising it breaks the pattern without letting the dots clump.
Presets
Your photos are never uploaded. The dot placement and the export both run inside this browser tab.
People also use
Everything this tool does
Every dot the same size
Tone comes from how many dots there are, not how large they are. Measured across 494 interior dots in one output, every single one covers exactly 5 pixels.
Error diffusion, not a threshold
Each cell decides yes or no and passes its error to the neighbours, so density tracks tone even though every individual decision is binary. A plain threshold would lose every tone below its cut-off.
Dots that do not clump
Out of 560 dots at the same density, pure random placement left 408 crowded against a neighbour, against 81 here. That gap is the difference between dirt and drawing.
Wobble you control
At zero the dots sit on an exact lattice, which is a legitimate mechanical look. Raising it displaces each dot within its own cell, breaking the grid without letting neighbours collide.
Exactly two colours
Every output pixel is either ink or paper, which is what makes the result usable for screen printing, vinyl cutting and auto-tracing to vector.
Your ink and paper
Both colours are yours, so blue on pale for a technical drawing or brown on cream for an old engraving takes one click.
Completely deterministic
Dot displacement comes from a hash of the cell coordinates rather than a random generator, so the same photo and settings always give the same drawing.
Drag to compare
Before and after share one frame with a slider, which is how you judge whether the spacing suits the display size.
Batch with one ZIP
Stipple a whole set with identical settings and take everything as a single archive built in your browser.
Nothing is uploaded
No server, no queue, nothing to delete afterwards. Close the tab and every trace of the image goes with it.
What each control does
Spacing and size together decide how visible the technique is, and the wobble decides whether it reads as printed or hand drawn. All three matter more against the final display size than against the photo.
| Setting | What it does | Try | Good for |
|---|---|---|---|
| Spacing 3-5 | dense, detail preserved | size 1 | Large images, print |
| Spacing 10-16 | open, obviously drawn | size 2-3 | Posters, small display |
| Size 1 | fine pen dots | spacing 3-6 | Detailed work |
| Size 3-4 | heavy marker dots | spacing 10+ | Bold graphic |
| Wobble 0 | exact lattice, visible grid | any | Mechanical, printed feel |
| Wobble 50-80 | hand placed | any | Most uses |
| Wobble 100 | loosest placement | spacing 6+ | Rough sketch feel |
2
colours in the output
Uniform
dot size throughout
0
files uploaded
0
randomness, fully deterministic
ZIP
batch download
Free
no account needed
FlipMyFormat vs other stipple tools
| Capability | FlipMyFormat | Typical free tool |
|---|---|---|
| Files stay in your browser | ||
| Error diffusion rather than a plain threshold | ||
| Dots that do not clump or leave gaps | ||
| Adjustable wobble between lattice and hand placed | ||
| Custom ink and paper colours | ||
| Batch ZIP download without paying | ||
| No watermark on the output |
How to stipple a photograph properly
Stippling is the same problem as hatching solved a different way. A pen makes one kind of mark in one colour at full strength, and the only variable available is how much of the paper you cover, so tone has to come from density. Where hatching builds density with crossing lines, stippling builds it with dots, and the constraint that makes it recognisable is that every dot is the same size. If dots grow and shrink with tone you have made a halftone, which is a printing process rather than a drawing technique, and it looks completely different. So the size control here changes every dot at once and the tone is carried entirely by how many of them there are. That leaves two decisions. The first is spacing, and it should be judged against the size the picture will actually be displayed at rather than against the photograph. Stippling is a technique you are meant to see; if the dots are too fine for the display size your eye merges them and you have made an expensive greyscale conversion. The second is the wobble, which is the difference between something that looks printed and something that looks drawn. At zero the dots sit on a perfect lattice and you can see the grid immediately, which is a legitimate mechanical look. Raise it and the placement becomes irregular the way a hand would be, without the dots bunching together, which is the part that takes some care to get right.
- 1
Add a photo with clear tones
Drag it in, click to browse, or paste with Ctrl+V. Portraits and subjects with a clear light to dark range stipple best.
- 2
Set spacing against the final size
You should be able to see individual dots at the size the image will actually be displayed, or the technique averages into flat grey.
- 3
Add wobble and export
Around fifty to eighty percent reads as hand placed. Export PNG, because small hard dots are the worst content for JPEG.
Why random dots look wrong
Randomness clumps, and clumps look like dirt
The obvious way to place dots at a given density is to roll a die for every position, and it produces a distinctly bad result. Independent random placement always creates clumps and empty patches, because nothing stops two dots landing next to each other, and at stippling densities the eye reads those clumps as blotches and the gaps as holes rather than as tone. What a human stippler does instinctively is keep dots apart while still varying the spacing, and the printing equivalent is error diffusion: each cell decides yes or no, and whatever error that decision made is passed to its neighbours so they compensate. The result is dots that are irregular but evenly spread. We measured the difference by counting how many dots land close to another dot at the same overall density. Out of 560 dots, pure random placement left 408 crowded against a neighbour while error diffusion with wobble left 81. That is why one looks like dirt and the other looks like drawing.
Uniform dots, and why the wobble matters
Every dot here is drawn at the same radius, which is what separates stippling from halftone. In a halftone the dots sit on a fixed grid and change size to carry tone; in stippling they stay the same size and change in number. That constraint is also what makes the placement problem interesting, because a fixed dot size on a fixed grid would be plainly visible as a lattice. The wobble displaces each dot within its own cell by a deterministic whole number of pixels, which breaks the alignment without letting any dot travel far enough to collide with its neighbours. Snapping to whole pixels matters more than it sounds: a fractional centre makes the drawing window clip each circle differently, so the dots come out between two and five pixels instead of identical. Measured across 494 interior dots, every one covers exactly 5 pixels. Because it comes from a hash of the cell coordinates rather than a random generator, the same photo and settings always produce exactly the same drawing, so a batch of images gets a consistent treatment and re-applying after a small change does not rebuild the whole picture differently.
What people use it for
Scientific illustration
Stippling is the traditional technique for botanical and anatomical plates, where it renders form without competing with line work.
Editorial portraits
The Wall Street Journal hedcut style is stippling and hatching combined, and it still reads as authority.
Screen printing
Two colours with no grey is exactly what a single screen needs, with tone already broken into printable marks.
Vinyl cutting and stencils
Hard two-tone output traces to vector paths far more reliably than a greyscale image.
Book and album covers
The engraving association gives an image a literary feel without any other treatment.
Tattoo references
Stippled shading is a core tattoo technique, so a stippled photo is a useful reference to discuss.
Laser engraving
Discrete dots are far easier for a laser to reproduce than continuous tone.
Technical and blueprint styling
Blue ink on pale paper with fine dots reads as a technical plate.
Six tips worth knowing
Judge the spacing against the size the image will actually be displayed at. Too fine and the dots merge into flat grey.
Keep every dot the same size. That is what makes it stippling; dots that vary in size are a halftone, which is a different look entirely.
Wobble around fifty to eighty reads as hand placed. Zero is a visible lattice, which is a mechanical look rather than a wrong one.
Fix contrast before stippling. Density follows tone, so a flat photo produces an evenly grey field of dots.
Increase the spacing for images that will be shown small, and decrease it for large prints.
Export PNG. Small hard dots are the single worst content for JPEG, which blurs them and rings around every one.
Troubleshooting
It looks like flat grey, not dots
The spacing is too fine for the size you are viewing it at, so the dots merge. Increase the spacing.
The dots look blotchy and uneven
That should not happen here, since error diffusion spreads them evenly. If you see clumps, check whether your source image already has noise or compression blocks.
I can see a grid
Your wobble is at or near zero. Raise it to break the lattice.
The image is nearly all dots or nearly all paper
Your photo is very dark or very light. Fix the levels first, since density follows tone directly.
Frequently asked questions
What is stippling?
Rendering tone with dots of a single size, where darker areas simply have more dots. It is the traditional technique of scientific and botanical illustration, and it predates printing.
How is it different from a halftone?
In a halftone the dots sit on a regular grid and change size to carry tone. In stippling they stay the same size and change in number. That single difference is why one looks printed and the other looks drawn.
Why not place the dots randomly?
Because independent random placement always clumps. Nothing stops two dots landing together, so you get blotches and holes rather than even tone. Out of 560 dots at the same density, random placement left 408 crowded against a neighbour, against 81 here.
What is error diffusion doing?
Each cell decides whether to place a dot, and the error in that decision is passed on to its neighbours so they compensate. Density then tracks tone accurately even though every individual choice is only yes or no.
What does the wobble control do?
It displaces each dot within its own cell. At zero they sit on an exact lattice, which is visible as a grid. Raising it breaks the alignment without letting dots travel far enough to collide.
What spacing should I use?
One where you can clearly see individual dots at the size the image will actually be displayed. Too fine and your eye merges them, which defeats the point of the technique.
Is the output really two colours?
Yes. Every pixel is either the ink colour or the paper colour, which is what makes it usable for screen printing, vinyl cutting and vector tracing.
Is there any randomness?
No. Dot displacement comes from a hash of the cell coordinates, so the same photo and settings always produce exactly the same drawing and a batch stays consistent.
Why is my image nearly all dots?
It is very dark, and density follows tone directly. Fix the levels first so the tonal range is spread across the scale.
Can I use it for screen printing?
Yes, and it is one of the better uses. A single screen prints one ink, and stippling is a traditional way of getting tonal range out of that constraint.
Can I change the ink colour?
Yes, both ink and paper. Blue on pale grey reads as a technical plate, brown on cream as an old engraving.
Which format should I export?
PNG, and it genuinely matters. Small hard dots on paper are the worst possible content for JPEG, which blurs each dot and surrounds it with grey ringing.
How is this different from crosshatch?
Both build tone from marks of one colour, but hatching uses crossing lines and stippling uses dots. Hatching has a direction and stippling does not, which makes stippling better for soft, rounded forms.
Are my photos uploaded to a server?
No. The dot placement and the export both run in your browser using the canvas API. Nothing is sent anywhere.
Is transparency preserved?
The output is filled with ink and paper colours, so it is opaque. If you need transparency, key out the paper colour in another editor.
Can I process a batch?
Yes. Add as many photos as you like and the same spacing, size, wobble and colours are applied to each.
Can the effect be undone?
No. The original tones are replaced by dots. Your uploaded file is never modified, so keep the original.
Does it add a watermark or need an account?
No to both. No sign-up, no email wall, no daily limit and no watermark on the output.