At 64 cells across, a 4:3 photo becomes 64 × 48 cells: each cell gets an average color, then the nearest palette color
Pixel art conversion splits a photo into a grid of cells and paints each cell with a single color so the picture looks like pixel art. In the converter above, you set the number of cells across and the number of cells down follows the original ratio (a 640 × 480 px photo split into 64 cells across becomes 48 cells down). The tool averages the pixels inside each cell and then swaps that average for the nearest color in the palette you chose.
Drag the picture sideways to overlay the original on the pixel result at the same spot, and the "Cells per color" list below shows how many cells each color covers. When you save, every cell is enlarged by a whole-number factor such as 4, 8 or 16 into a PNG, so the edges stay sharp. The image is processed only inside your browser and is never sent to a server.
When to turn a photo into pixel art
- Making a profile picture or emoji: 32 to 64 cells across keeps a face recognizable. For small icons, use fewer cells and around 8 colors for a crisper result.
- Sketching a game sprite or tile: load a transparent PNG with the background removed and turn on the outline to get a first draft before you refine it by hand. You can also try a fixed palette such as PICO-8 right away.
- Planning a bead or cross-stitch pattern: one cell is one bead or one stitch. The grid adds a darker line every 10 cells to make counting easier, and "Cells per color" shows how many you need of each color.
- Making a retro thumbnail or poster: four Game Boy greens or two black-and-white colors with dithering look like an old screen.
How the conversion works
- Split into cells: if the number of cells across is w, the number of cells down is w × original height ÷ original width, rounded. The pixel range for each cell comes from dividing the original width into w boundaries.
- Average color per cell: the red, green and blue of the pixels in a cell are averaged, weighted by opacity. If the average opacity is at least half, the cell takes that average color; below half, it stays a transparent cell.
- Choose the palette: "Auto" groups the cell colors into as many colors as you set using median cut (Heckbert, 1982), which repeatedly splits at the median of the widest color channel, then refines the group averages four times. PICO-8, CGA, Game Boy and B&W use fixed colors.
- Pick the nearest color: the difference between a cell color and a palette color is measured as distance in the OKLab color space (Ottosson, 2020), which is closer to how the eye sees lightness and color difference, and the nearest color is used. With dithering on, colors are mixed at this step.
- Enlarge and save: each cell is scaled up as-is to n × n pixels, with no interpolation that would blend neighboring colors. Saving 64 × 48 cells at 8× gives a 512 × 384 px PNG.
| Four pixels in a cell (2 × 2) | Average opacity | Cell result |
|---|---|---|
| Two red (255, 0, 0) + two blue (0, 0, 255) | 100% | (128, 0, 128) purple |
| One red + one blue + two transparent | 50% | (128, 0, 128), opaque because it is half |
| One red + three transparent | 25% | Transparent cell |
Transparent pixels are left out of the color average, so the second row also comes out purple. Painting this purple (128, 0, 128) with the PICO-8 palette gives #7E2553 (dark purple), the nearest color by OKLab distance.
Choosing the number of cells: for a 4:3 photo
Once the number of cells across is set, the number of cells down and the save size follow. The values below are for a photo with a 4:3 aspect ratio, such as 640 × 480 px.
| Cells across | Cells down | Total cells | Size saved at 8× | Feel |
|---|---|---|---|---|
| 16 | 12 | 192 | 128 × 96 px | Icon, only the shape remains |
| 32 | 24 | 768 | 256 × 192 px | Emoji, face outline |
| 64 | 48 | 3,072 | 512 × 384 px | Profile, people and objects recognizable |
| 128 | 96 | 12,288 | 1,024 × 768 px | Landscape, details remain |
| 256 | 192 | 49,152 | 2,048 × 1,536 px | Close to a photo |
For reference, the original Game Boy screen is 160 × 144 pixels (Pan Docs) and the PICO-8 screen is 128 × 128 pixels (PICO-8 manual). If your picture should fill one of those screens, 128 to 160 cells across is the benchmark.
Six palettes
| Palette | Colors | How the colors are set | Suits |
|---|---|---|---|
| Auto | 2–64 (default 16) | Picked from the image's cell colors by median cut, then refined | Photos, keeping the mood of the original |
| Original | Not reduced | The cell average color as is | Mosaics, when you only want fewer cells |
| PICO-8 | 16 | The fixed colors of Lexaloffle's PICO-8 fantasy console | Bright, vivid game art |
| CGA | 16 | The 16 RGBI colors of the 1981 IBM CGA (color 6 is brown #AA5500) | The look of a DOS-era PC screen |
| Game Boy | 4 | Four greens, the BGB emulator default | A handheld console feel |
| B&W | 2 | #000000, #FFFFFF | With dithering, an engraving or newsprint look |
A fixed palette never uses colors that are not in it. If you convert the sample image with PICO-8, "Cells per color" lists only the colors, out of the 16, that are actually painted on cells. The original Game Boy screen shows four shades of green, but there is no official RGB value, so the colors differ slightly from one emulator to another. The NES (Famicom) is not included because its screen colors vary with the TV and video circuitry, so no single RGB palette exists (NESdev Wiki).
The PICO-8 and Game Boy palette values, the Game Boy and PICO-8 screen sizes, and the dithering weights were checked against the original sources above on 2026-10-12. These values are not rules that change every year.
Dithering: mixing dots to make in-between colors
With few colors, smoothly changing areas such as sky or skin break into a few blocks. Dithering mixes two nearby colors dot by dot so that, from a distance, they look like a color in between.
| Method | How it works | Suits |
|---|---|---|
| None | Each cell gets the single nearest color | Pictures with flat areas, icons |
| Pattern | A 4 × 4 Bayer matrix (Bayer, 1973) nudges each cell's color a little up or down so two colors mix in a regular pattern | Retro game screens, black and white or 4 colors |
| Diffusion | The leftover color difference after painting is passed on: 7/16 to the right, 3/16 to the lower left, 5/16 below and 1/16 to the lower right (Floyd–Steinberg, 1976) | Photos, pictures with many gradients |
With few cells, dithering can look coarse. A simple way to choose is no dithering at 32 cells across or fewer, and trying diffusion first for photos at 64 cells or more. "Original" does not reduce colors, so it needs no dithering.
Common mistakes
- Saving small and enlarging in another program: most image programs blend neighboring colors when they enlarge, which blurs the edges. Save at the size you need from the start, such as 8× or 16×.
- Re-saving the PNG as a JPG: JPG compression leaves smudges around cell edges and fills in transparent cells. Keep pixel art as PNG.
- Using more cells than the original has pixels: splitting a 300 px wide image into 512 cells only gives more cells than original pixels and adds no detail. The tool tells you about this just below the cell setting.
- Reducing colors while turning dithering off: painting a face or sky with 4 to 8 colors creates bands. Raise the count to 16 or more, or turn on diffusion.
- Leaving a busy background: with few cells, the background and the subject blend together. Load a transparent PNG with the background removed and transparent cells stay empty, and with the outline on, a line is drawn around the subject.
- Assuming social media keeps the original size: services may shrink or recompress uploaded images. If the cells get smeared, change the save multiple and upload again.
Limits and cautions
- All calculation happens in your browser. To average the cells, the original is read after being reduced to 1,024 px or less on the long side, and up to 512 cells across the result barely differs.
- Width is 8 to 512 cells and height is up to 1,024 cells. When saving, you can choose only sizes up to 4,096 px on a side and 4,096 × 4,096 px in area, because the canvas limit in iOS browsers is 4,096 × 4,096 (MDN).
- Only formats your browser can open are accepted. An animated GIF uses only its first frame, and formats your browser can't open (HEIC in many browsers) must be converted to JPG or PNG first. Files up to 40 MB are accepted.
- The Auto palette always gives the same result for the same image and settings, but it is not guaranteed to beat a color set picked by hand. If you don't like the colors, change the number of colors and compare.
- The outline is a simple method: it turns cells that are clearly darker than their neighbors, and cells next to transparent cells, into the line color. You can't choose exactly which lines to draw.
- It only imitates the colors of old machines such as the Game Boy and CGA. Hardware limits, such as how many colors each tile or sprite may use, are not reflected.
Sources
- 01Lexaloffle — PICO-8 User Manual128 × 128 screen, fixed 16-color palette (colors numbered 0–15) — checked 2026-10-12
- 02Lospec — PICO-8 PaletteHEX values of the 16 PICO-8 colors (Lexaloffle Games). The four Game Boy colors use the values of the Nintendo Gameboy (BGB) Palette on the same site
- 03Pan Docs — SpecificationsOriginal Game Boy (DMG) screen 160 × 144, four shades of green
- 04NESdev Wiki — PPU palettesComposite video output has no single palette that fits every game; a palette entry points to one of 64 colors
- 05Heckbert, P. (1982). Color image quantization for frame buffer displayACM SIGGRAPH Computer Graphics 16(3), 297–307. Color reduction by median cut
- 06Björn Ottosson — A perceptual color space for image processing2020-12-23. The OKLab transform (linear sRGB → LMS → cube root → Lab)
- 07Wikipedia — Floyd–Steinberg ditheringFloyd & Steinberg (1976), An adaptive algorithm for spatial grey scale, Proceedings of the SID 17: 75–77. Error weights 7·3·5·1/16. On the same site, Ordered dithering (Bayer, 1973, IEEE ICC)
- 08Wikipedia — Color Graphics AdapterIBM CGA (1981) 16 RGBI colors, color 6 brown #AA5500
- 09MDN — <canvas>: Maximum canvas sizeiOS devices are limited to 4,096 × 4,096; beyond that the canvas can't be used
Frequently asked questions
How many cells should I use to turn a photo into pixel art?
It depends on the use. Icons often use 16 to 32 cells across, profile pictures and emoji 32 to 64, and landscapes around 128. A 4:3 photo split into 64 cells across has 48 cells down, 3,072 cells in all. Changing the cell chips and comparing with the preview by palette below makes the choice easier.
How many colors should I use?
Photos keep the mood of the original at around 16 colors, and below 8 colors the picture becomes a simple style. If smoothly changing areas such as a face or the sky show bands, raise the number of colors or turn on dithering (diffusion). An image with simple cell colors may use fewer colors than the number you chose.
What is dithering and when should I turn it on?
Dithering mixes two nearby colors dot by dot so that, from a distance, they look like a color in between. Pattern (Bayer 4 × 4) gives a retro game look with a regular pattern, and diffusion (Floyd–Steinberg) passes the leftover color difference to neighboring cells so photo gradients look natural. For icons with few cells, leaving it off keeps things cleaner.
Why does my saved PNG look blurry?
The tool enlarges each cell by a whole-number factor as it is, so the file itself is not blurry. If you save at a small multiple and another program or social media then enlarges or recompresses the image, neighboring colors blend and it blurs. Save at the size you need from the start, such as 8× or 16×, and keep it as PNG.
Is a transparent background kept?
Yes. If the average opacity of the pixels in a cell is below half, the cell stays transparent and is saved as transparent in the PNG. At half or more, it is painted with the average color of the pixels left after leaving out the transparent ones. If you turn on the outline for an image with the background removed, the cells around the subject change to the line color.
Is the image I upload stored on a server?
No. The image is opened and calculated inside your browser and is never sent to a server. It disappears when you close the page or choose another image. A saved PNG goes only to the downloads folder on your own device.
Are the Game Boy and PICO-8 palette colors accurate?
PICO-8 uses the fixed 16 colors set by Lexaloffle as they are. The original Game Boy screen shows four shades of green, but there is no official RGB value, so this tool uses the four default colors of the BGB emulator. It only imitates the color feel of old machines and does not reflect hardware limits such as how many colors each tile may use.
Can I convert HEIC photos or animated GIFs?
Only formats your browser can open. In a browser that can't open HEIC, convert it to JPG or PNG first, and an animated GIF is converted from its first frame only. Files up to 40 MB are accepted, and for the calculation the long side is reduced to 1,024 px or less when the image is read.