How the conversion works
- Shrink to the grid. Each art pixel becomes the average color of every source pixel in its cell.
- Adjust. Optional saturation and contrast, because pixel art reads better a little punchier than the photo it came from.
- Map to a palette. Each cell is matched to the nearest palette color in OKLab, a color space where nearest means what your eye sees as most similar.
- Dither, if you like. Mix palette colors in a pattern to suggest shades the palette doesn't have.
Why area averaging beats nearest-neighbor shrinking
The usual way to pixelate a photo is to shrink it with nearest-neighbor scaling, which keeps one source pixel per cell and throws the rest away. Take a 4000 px wide photo down to a 64 px grid and each cell covers about 62 × 62 source pixels, roughly 3,900 of them. Nearest-neighbor picks one. If it lands on a highlight, a dark hair or a speck of noise, the whole art pixel takes that color. Thin lines vanish or break into dots, and shifting the grid by a single pixel changes the result completely.
Area averaging uses all 3,900, so each art pixel has the true color of its patch and edges stay where they belong. That's why the result looks drawn rather than glitchy.
Picking a grid size
- 16 to 32 px: icons and emoji-like images. Only strong shapes survive.
- 48 to 96 px: avatars, sprites and recognizable faces.
- 128 to 256 px: scenes and detailed portraits, closer to a mosaic.
Crop first so the subject fills the frame. A face that takes up a quarter of the photo gets only a quarter of the grid. The square cropper is a quick way to make an avatar-shaped source.
Palettes
| Palette | Colors | Good for |
|---|---|---|
| Auto | 2 to 64, picked from your image | Faithful color, any subject |
| PICO-8 | 16 | Bright, saturated fantasy-console look |
| Sweetie 16 | 16 | Softer, balanced indie-game colors |
| Endesga 32 | 32 | Warm and versatile, good for skin and scenery |
| Game Boy | 4 greens | The classic handheld look |
| CGA | 4 (black, cyan, magenta, white) | Early-PC look |
| 1-bit | 2 (black and white) | Stark graphics, best with dithering |
Auto runs k-means clustering in OKLab to find the colors that best represent your picture. Fewer colors give a flatter, more stylized result.
Dithering
- None: flat areas of color with clean edges. Gradients turn into bands.
- Floyd–Steinberg: spreads each pixel's color error to its neighbors. Gradients look smooth, with a grainy, organic texture.
- Ordered (Bayer 4×4): a regular crosshatch pattern, the look of old games and early PCs. Because the pattern is fixed to the grid, it stays steady across similar images, which suits tiles and sprites.
Dithering matters most with small palettes. Game Boy and 1-bit need it for anything with shading.
Exporting
At 1× the PNG is the true size, one image pixel per art pixel, which is what game engines and pixel editors want. To post it online, export at 2× to 16× instead. The tool scales with nearest-neighbor, so every art pixel stays a sharp square. Upload a tiny 1× file and social sites enlarge it with smoothing, which blurs everything. The optional grid overlay outlines each art pixel, handy when you're copying the image into beads, cross-stitch or a tile map.
More free tools are on the tools page.
