Photo effects
The 8-bit style draws your photo as a console sprite: a 32 or 48 pixel grid, four colours taken from the real NES, C64 or Spectrum palette, flat fills and a dark outline. Not a pixelated photograph — the constraints are the ones a sprite artist worked under, which is why the result looks drawn.
Ten styles, adjusted live. Nothing is uploaded, there is no watermark, and sharing hands the image straight to your phone rather than through a server.
Drop a photo here
JPEG, PNG, WebP, HEIC and more. Everything happens on your device — the picture is never uploaded.
or drop a folder here, or paste an image with Ctrl + V
Nothing is uploaded. Decoded, filtered and shared from this tab.
Why most "8-bit filters" look wrong
Nearly all of them do the same two things: pixelate, then reduce the colours. That produces a photograph seen through frosted glass. It is recognisably lower-fidelity, and it is not sprite art, because it is missing every constraint that made sprite art look the way it does.
There are four, and each one is a decision rather than a detail.
The framing decides more than the palette
This is the one that surprised us. A photograph of a person is mostly room. A webcam takes a 4:3 shot with you somewhere in the middle of it, and at a 48-pixel grid that leaves a face about nine pixels across — too few to hold a face, however good the colours are.
It is worse than it sounds, because the wall is most of the frame and therefore wins the palette vote. Two of four available colours went on paint. So the tool finds the detailed part of the picture and crops to it before anything else happens: flat wall has almost no edge energy and a face has a great deal, which separates them without needing to know what a face is. On our test shot that takes the face from nine grid pixels to thirty-three, and the wall from two colours to one.
You can switch it off under Framing if you want the whole photograph — useful when the subject is the scene rather than a person.
The grid is far smaller than you think
Everything on a NES, a Master System or a Game Boy was built from 8×8 tiles. Mario is 16×16. Link is 16×16. Mega Man is 24×24. The largest thing any of these machines drew a face at — the RPG character portrait — was 32×32 or 48×48. A filter working at a hundred and twenty pixels across is not near that; it is four times the size, which is why it still reads as a photograph.
The palette is the machine's, not a maths function
Reducing to an evenly spaced grid of colours gives you sixty-four shades no console could produce and misses the ones that make a machine recognisable — the NES's particular salmon, the C64's ochre and its muddy purple. Every colour here is taken from the actual hardware palette of the machine you pick, and nothing else is allowed on screen.
Choosing which handful to use is the part that makes it look drawn. A sprite artist picked a few colours that suited the subject and then worked only in those, so that is what happens: the palette is chosen per image, favouring colours the picture actually contains and spreading them across the tonal range.
Sprites were not dithered
Error diffusion — spreading the quantisation error into neighbouring pixels as fine speckle — is the Amiga, DOS and GIF look. Console sprites were placed pixel by pixel out of three or four colours, so they are flat areas meeting at hard edges. Dithering is the single change that most stops an image reading as a sprite, which is why it is switched off here and switched on for the Game Boy and 1-bit styles, where it belongs.
And they had outlines
Almost every sprite is drawn with a dark edge, so it reads against a busy background. Nothing about pixelating produces one. Here the structural edges are found in the original photograph — the jaw, the hairline, the shoulders — and drawn in the darkest colour the chosen machine offers.
Measured before the colours are cut, not after. Outlining wherever two flattened colours meet draws a line around every band of a gradient and turns a face into a contour map.
The colour problem nobody mentions
Ask for the nearest console colour to shadowed skin, measuring in RGB, and you get grey. The arithmetic is correct and the result looks broken: half the face turns to stone, because the hue jumped rather than the brightness.
So colours are matched in OKLab, where distance corresponds to what the eye actually sees, with hue weighted above lightness. A darker version of the same colour wins over a numerically closer grey — which is exactly what a person shading a face reaches for.
Dithering, in one paragraph
Suppose you want a mid grey and only have black and white. Choose white, and you are 128 too bright — so pass that error to the pixel on the right, which now leans darker and picks black. Its own error passes on again. Across an area the proportions come out right, and your eye averages them back into the grey you asked for.
That is Floyd–Steinberg error diffusion, published in 1976 and the reason a four-colour Game Boy screen could show a photograph. It is the right tool for the Game Boy and 1-bit styles and the wrong one for a sprite, which is why it is a switch rather than a default.
The styles, and what each is for
| Style | Good for |
|---|---|
| 8-bit | Avatars, stickers, anything meant to look like a game |
| Game Boy | The four 1989 greens. Instantly readable as a reference |
| Pixelate | Censoring a face or a number plate, or a clean mosaic |
| 1-bit dither | Newsprint, zines, early Macintosh |
| Halftone | Print texture — dots that grow as the image darkens |
| Duotone | Posters and playlist covers. Pick your own two colours |
| ASCII | Text you can paste into a terminal, a README or a message |
Pixelate is worth a caution: it is fine as a look, and it is not reliable censorship. Large blocks are genuinely irreversible, but small ones over text can sometimes be undone by brute force. If the point is to remove information rather than to style a picture, paint over it or redact it properly.
Sharing without uploading
A share button normally means the image is posted somewhere, a link comes back, and the link is what gets shared. That would make the promise on every other page of this site untrue, so it is not what happens here.
Your phone's own share sheet accepts the file directly from this tab and passes it to whichever app you choose. The picture goes from the browser to Instagram or WhatsApp without a stop in between. On a desktop, where that interface does not exist, the button copies the image to your clipboard instead.
It also means there is no watermark, because there is no service in the middle wanting credit. If you tell somebody where you made it, that is a decision you made rather than a tax on the picture.
Questions
How do I turn a photo into 8-bit pixel art?
Drop it in and pick the 8-bit style. The picture is first cropped to its subject — a photograph of a person is mostly room, and drawing the room wastes the handful of pixels a sprite has. Then it is drawn onto a small grid — 32 or 48 pixels across, the size an actual console drew a face at — using four colours taken from the real hardware palette of the machine you choose, with flat fills and a dark outline traced along the structural edges. Those are the constraints a sprite artist worked under, and they are what makes the result look drawn rather than filtered.
Is my photo uploaded?
No. The picture is decoded and filtered by this page, and it never leaves your device — including when you share it. There is no account, no watermark and no limit on how many you do.
How does sharing work if nothing is uploaded?
Your phone’s share sheet takes the image directly from this tab and hands it to whichever app you pick. Nothing passes through a server of ours, because we do not have one. On a desktop the button copies the image to your clipboard instead, ready to paste into Slack or a document.
Why does the Game Boy style look green?
Because the original 1989 Game Boy screen was. It had four shades, all of them a yellowish green, and those four exact colours are what the filter uses. The dithering is doing the same job it did then — making four colours look like a picture.
Which machines can it draw as?
NES, Commodore 64, ZX Spectrum, CGA and Game Boy. Each uses that machine's actual palette and nothing outside it, so the character of the result changes completely: the C64 gives you muddy browns and ochres, the Spectrum is fiercely saturated because it had no in-between shades, and the NES has that particular salmon you will recognise from a hundred sprites. The NES had no digital video output at all, so its palette is an interpretation — every version of it in existence is somebody's measurement of a real console through a real television.
Why has it cropped my photo?
Because a sprite has very few pixels and a photograph of a person is mostly room. At the default grid an uncropped webcam shot leaves a face about nine pixels across, and the wall — being most of the frame — takes half the available colours. Cropping to the subject roughly triples the face and hands the palette back to you. Set Framing to "Whole photo" if you would rather keep the frame as shot.
Why does it come out so small and blocky?
Because that is the size these machines worked at, and it is much smaller than people expect. Mario is 16×16 pixels. Mega Man is 24×24. An RPG character portrait — the biggest a face ever got — was 32×32 or 48×48. Anything finer stops looking like a sprite and starts looking like a photograph with large pixels. You can push it up to 96 if you want that, but the default is deliberately small.
What is dithering, and why is it off for the 8-bit style?
When a colour cannot be shown exactly, dithering picks the nearest available one and pushes the difference into neighbouring pixels, which then lean the other way; your eye averages them back into the colour you wanted. It is why a four-colour Game Boy screen can show a gradient. But it is the Amiga and DOS look, not the console sprite look — sprites were flat colour placed by hand — so it is off for 8-bit and on for Game Boy and 1-bit. The switch is there if you want it.
Can I use these commercially?
The tool imposes no restriction — it is arithmetic performed on your own picture, on your own machine, and the result is yours. Whether the underlying photograph is yours to use is a separate question and one only you can answer.
Will it work on a big photo?
Yes. The working copy is capped at 1600 pixels on the longest edge so the preview updates as you move a slider rather than after it. For these styles that is not a compromise — chunky pixels and halftone dots do not benefit from more resolution.
What BriskFile will not do to you
-
Your files never leave your device
Every conversion runs in your browser. Open DevTools, watch the Network tab, and you will see no upload — because there is not one.
-
No account, no email, no watermark
Nothing to sign up for and nothing stamped on your images. There is no step between choosing a file and getting it back.
-
No limits at the download button
No daily cap, no file counter, no "upgrade to download". If the tool starts a job, it finishes it.
-
Checkable, not just claimed
Open the Network tab and convert something — nothing goes out. Or load the page, disconnect, and watch it keep working: the tool is already on your machine, and your file never leaves it.