Dot Matrix Effect: Print a Photo With Pins
A pin fires or it does not, always at the same position and always the same size, so tone can only come from which pins fire. That constraint is reproduced exactly here with an ordered dither, which is how the printers themselves did it.
Drop images here
or click to browse · or paste with Ctrl+V
JPG · PNG · WebP · GIF · BMP · AVIF
Output
The spacing of the print head pins. Wider pitch is a coarser, older printer.
Every fired pin makes exactly this mark. A pin cannot make a bigger or smaller dot, which is the whole constraint.
Applied before the pins decide, since the printer itself has no contrast control.
Presets
Your photos are never uploaded. The pin grid and the export both run inside this browser tab.
People also use
Everything this tool does
Every pin makes the same mark
A real pin cannot fire harder or make a bigger dot. Checked across a whole output, all 200 dots contained exactly the same number of ink pixels and every centre sat on a grid position with a worst deviation of 0.00 pixels.
Ordered dithering, as the drivers used
A standard eight by eight Bayer matrix decides which pins fire, which is what produces the woven crosshatch texture in the midtones rather than a smooth gradient.
Not a halftone
A halftone varies dot size on a rotated grid because a press can. A pin cannot, so tone comes from dot count instead, and the texture is visibly different at the same spacing.
Three machine looks
Black ribbon on continuous paper, amber phosphor for a terminal rather than a printout, and a worn brown ribbon on aged paper.
Pitch and pin size separately
Pitch is how far apart the pins sit and diameter is how big a mark each makes. Both are physical properties of a print head, so both are yours to set.
Completely deterministic
There is no randomness anywhere in the engine, so the same photo and settings always produce exactly the same printout.
Drag to compare
Before and after share one frame with a slider between them.
Six purpose-built presets
Classic printout, coarse nine pin, fine twenty-four pin, amber terminal, worn ribbon and heavy ink.
Batch with one ZIP
Print 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
A dot matrix printer has almost no controls, and that is the point. Pin pitch and pin diameter are physical properties of the print head, and everything else has to be decided before the pins ever fire.
| Setting | What it does | Try | Good for |
|---|---|---|---|
| Pitch 4-6 | fine print head | dot 2-3 | Detail preserved |
| Pitch 10-16 | coarse, older printer | dot 5 | Obvious retro look |
| Dot 1-2 | thin pins, open pattern | pitch 4-8 | Light, airy print |
| Dot 4-5 | fat pins, dots touch | pitch 8+ | Heavy, inky print |
| Black ribbon | ink on continuous paper | any | The classic printout |
| Amber terminal | phosphor on black | pitch 5-8 | A screen rather than paper |
| Worn ribbon | brown ink on aged paper | pitch 6-10 | Old, faded printout |
8x8
ordered dither matrix
Fixed
dot size and position
0
files uploaded
3
ribbon and display looks
ZIP
batch download
Free
no account needed
FlipMyFormat vs other dot matrix filters
| Capability | FlipMyFormat | Typical free tool |
|---|---|---|
| Files stay in your browser | ||
| Fixed dot size, as a real pin has | ||
| Dots on an exact grid, no drift | ||
| Ordered dithering rather than a threshold | ||
| Ribbon and phosphor display looks | ||
| Batch ZIP download without paying | ||
| No watermark on the output |
How to get a printout that looks like it came off a real machine
A dot matrix printer has a row of pins that strike an inked ribbon against paper, and each pin can do exactly one thing: fire or not fire. It cannot fire harder, it cannot make a larger dot, and it cannot move off its line. Everything you recognise about a dot matrix printout follows from those constraints, so reproducing them faithfully is most of the work. The first is that every mark is the same size, which is why the dot diameter here changes all of them at once. The second is that the marks sit on an exact grid, because the pins are physically fixed in the head and the head steps in equal increments. The third and least obvious is how such a machine renders a photograph at all. With one dot size and fixed positions, the only remaining variable is which pins fire, so the printer drivers used ordered dithering: a small repeating matrix of thresholds laid over the image, where each position fires if the local darkness beats its own threshold. That produces the distinctive cross-hatched texture in the mid tones that people recognise without being able to name, and it is the reason this looks different from a halftone even at the same dot spacing. Practically, choose the pitch against how coarse you want the machine to seem, and remember the effect works by throwing away almost everything: bold shapes and strong contrast survive, and fine detail does not.
- 1
Add a photo
Drag it in, click to browse, or paste with Ctrl+V. Bold subjects with clear tones survive the pin grid far better than fine detail.
- 2
Set the pitch and pin size
Pitch is how far apart the pins sit, diameter is how big a mark each one makes. Together they decide how coarse the printout looks.
- 3
Pick a ribbon and export
Black ribbon is the classic printout, amber is a terminal rather than paper. Export PNG so the dots stay hard.
One dot size, one grid, one decision
Ordered dithering is what the drivers did
Given a fixed dot size at fixed positions, a printer can only choose which positions get a dot, and the classic solution is an ordered dither. A small matrix of thresholds, here the standard eight by eight Bayer pattern, is tiled across the image, and each cell fires if its local darkness exceeds the threshold at that position. The arrangement of the matrix is designed so the dots that appear as tone darkens are spread as evenly as possible rather than filling in one corner first, which is what produces the characteristic crosshatch texture in the midtones. It is also why the result is completely deterministic: there is no randomness anywhere, so the same photo and settings always produce exactly the same printout. We check the two physical constraints directly. Across one output, all 200 dots contained exactly the same number of ink pixels, and every dot centre sat on a grid position with a worst deviation of 0.00 pixels. Feeding pure black through fires all 256 pins of a 128 pixel test image, and pure white fires none.
Why this is not a halftone
Both techniques put dots on a grid, and that is where the similarity ends. A halftone varies the size of its dots and rotates its grid, because a printing press can lay down a dot of any diameter and rotating the screen makes the pattern less visible. A dot matrix printer can do neither: the pin makes one size of mark and the head cannot rotate. So a halftone carries tone in dot area while a dot matrix carries it in dot count, and the two produce visibly different textures at the same spacing. That difference is the whole reason this exists as a separate tool rather than as a preset on the halftone page, and it is why the midtones here have a woven look that a halftone never produces.
What people use it for
Retro computing aesthetics
Dot matrix output is instantly recognisable as 1980s computing, which is why it keeps appearing in design work.
Game and UI art
The pin grid suits terminal interfaces, status readouts and anything meant to look like old hardware.
Zines and posters
Two colours with hard dots reproduces well on cheap copiers and reads as deliberately lo-fi.
Album and single artwork
The texture carries a strong period association without needing any other treatment.
Receipts and prop documents
Useful for making a photograph look like it came off a till roll or a line printer.
Screen printing
Two colours with no grey is what a single screen needs, with tone already broken into printable dots.
Stickers and merch
The pattern survives being printed small far better than a continuous tone photograph.
Social media graphics
Highly distinctive at thumbnail size, which is most of what a feed image needs to be.
Six tips worth knowing
Choose the pitch against how coarse you want the machine to seem. Wider pitch reads as an older, cheaper printer.
Fat pins at a wide pitch make the dots touch, which gives the heavy inky look of a printer with a fresh ribbon.
Raise the contrast before the pins decide. The printer itself had no contrast control, so anything you want has to happen first.
Bold subjects survive and fine detail does not. Crop tight before printing.
Amber mode is a terminal rather than a printout, so use it when the story is a screen rather than paper.
Export PNG. Hard dots on a fixed grid is precisely the structure JPEG destroys.
Troubleshooting
It looks like a halftone
Check the pin diameter is not close to the pitch. When dots nearly touch at every position the difference is less visible; reduce the diameter so the pattern shows.
The image is nearly all ink
Your photo is dark, and the pins fire wherever darkness beats the threshold. Raise contrast, or lighten the original first.
Fine detail vanished
It will. The effect throws away almost everything by design, keeping only what survives a coarse grid of identical dots.
The dots look uneven
They should not be. Every dot is the same size and every centre sits on an exact grid position. If they look uneven, you may be viewing the image scaled to a non-integer size.
Frequently asked questions
What is a dot matrix effect?
It imitates the output of a dot matrix printer, where a row of pins strikes an inked ribbon. Each pin fires or does not, always at the same position and always making the same size of mark.
How does a printer like that show a photograph?
With ordered dithering. A small repeating matrix of thresholds is laid over the image and each position fires if the local darkness beats its threshold. Tone comes from how many pins fire, since none of them can vary.
How is this different from a halftone?
A halftone varies the size of its dots and rotates the grid, because a printing press can do both. A pin can do neither, so tone comes from dot count instead of dot area, and the texture is visibly different.
Why does the midtone area look woven?
That is the ordered dither matrix. Its arrangement spreads the firing pins as evenly as possible as tone darkens, which produces a regular crosshatch rather than a smooth gradient.
Are all the dots really the same size?
Yes, and we check it. Across one output, all 200 dots contained exactly the same number of ink pixels, and every centre sat on a grid position with a worst deviation of 0.00 pixels.
What is the difference between pitch and diameter?
Pitch is how far apart the pins sit in the print head, diameter is how big a mark each one makes. On a real machine both are fixed by the hardware, which is why they are separate controls here.
Why is contrast applied before the pins?
Because a dot matrix printer has no contrast control. Anything you want to change about the tonal range has to happen before the data reaches the print head, so that is where it happens here.
What is amber mode?
An amber phosphor display rather than a printout. Same pin logic, but it reads as a terminal screen instead of paper, which suits a different kind of story.
Why did my fine detail disappear?
Because the effect discards almost everything by design. A coarse grid of identical dots cannot carry fine detail, which is why bold subjects work and busy ones do not.
Is there any randomness?
None. The dither matrix is fixed, so the same photo and settings always produce exactly the same printout, and a batch gets an identical treatment.
Can I use it for screen printing?
Yes. The output is two colours with no grey, and the tone is already broken into discrete dots that a single screen can reproduce.
Which format should I export?
PNG. Hard dots on a fixed grid is exactly the structure JPEG destroys, adding ringing around every pin and blurring the pattern.
Why does the pattern look uneven when I zoom?
Viewing at a non-integer scale resamples the dots and makes an even grid look irregular. Check at one hundred percent, or in the exported file.
Are my photos uploaded to a server?
No. The pin grid 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 pitch, diameter, contrast and ribbon are applied to each.
Can the effect be undone?
No. The original tones are replaced by a grid of identical 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.