Pick a pixel width, a palette and dithering for a crisp PNG. Runs on your device.
The tool turns an image into pixel art by shrinking it to a small grid, limiting the colours, and enlarging it again without smoothing. You choose the grid width, from 8 to 256 pixels. Your browser does this first shrinking with smoothing, so each cell of the grid takes roughly the blended colour of the area of the original it covers, and the exact blend can differ a little between browsers. A 3000 by 2000 photo at 64 wide becomes a 64 by 43 grid. Then the colours are cut down to a palette, and each cell is enlarged by a whole number such as 8, so every small pixel becomes a hard-edged block of 8 by 8 screen pixels. Nothing is blurred in that last step, which is why the edges stay crisp. Smaller widths look chunkier and hide detail.
Original colours keeps the shrunk colours as they are. The 8, 16 and 32 colour options use median cut, a method from 1982 that splits the picture's colours into boxes again and again along the channel with the widest range, then uses the average of each box. It adapts to your picture, so a sunset gets oranges and a forest gets greens. The fixed palettes ignore the picture. Grey 4-tone and Black and white are plain grey ramps, and Dusk 8 is an eight-colour palette we designed for this tool.
With few colours, smooth areas such as skies turn into flat bands. Dithering hides the bands by mixing two nearby palette colours in a pattern. Ordered dithering uses a fixed 4 by 4 Bayer pattern and gives a regular, retro crosshatch look. Floyd-Steinberg dithering pushes each pixel's rounding error onto the four neighbours it has not visited yet, with weights 7, 3, 5 and 1 sixteenths, and gives a looser, more natural grain. Neither is applied to Original colours, where no colour is rounded. The pixel grid option darkens the first row and column of each block by a quarter, so you can see where each pixel starts. It needs an enlargement of 4 times or more, so the option is switched off below that, and the preview shows the grid only when the saved file will have it.
The file is always a PNG, because JPEG compression would smear the hard edges and add stray colours. You can save it at 1 times, which is the tiny grid itself, or enlarged 4, 8 or 16 times. Neither side of the saved file passes 4096 pixels. The tool lowers the enlargement to the next offered value when needed (and shows it before you convert), so a 256 wide grid at 16 times is exactly 4096 wide, and a very tall picture has its grid height capped at 4096 with the shape kept. The shrinking to the grid is done by the browser before the palette step, so large photos stay quick. Transparent areas stay transparent. Location and camera details are not carried over and your original is never changed. This tool is a converter, not an editor: it does not let you touch up single pixels, and it does not animate.
Small widths give chunky icon-style art and larger widths keep more detail. Start at 64, which is the default, and move the slider while watching the preview.
16 is the classic limit and keeps most photos readable. 8 gives a bolder poster look, and 32 keeps skin tones and skies smooth. With a four-colour palette, Ordered or Floyd-Steinberg dithering hides the banding and gives the look of in-between tones; with None you get four flat shades.
Pick Ordered for a regular pattern that looks the same in every region and compresses well. Pick Floyd-Steinberg for a looser grain that follows the picture. Compare them in the preview.
It is enlarged by the factor you picked. A 64 pixel wide grid saved at 8 times is 512 pixels wide. Choose 1 times to get the true 64 pixel grid, which is what a game engine or a sprite sheet needs. A picture narrower than your width keeps its own width, and the estimate shows the width it will really have.
Yes. A grid cell that is less than half opaque becomes fully transparent, and the rest becomes fully opaque, as pixel art has no half-transparent pixels. Palette colours are chosen from the opaque cells only.
No. The shrinking, palette and enlargement run in this tab and no server receives your picture. The page counts visits with Google Analytics using rough size groups such as 1 to 10 MB, never a file name, an image or the settings you chose.