Free in your browser

Image to pixel art

Turn an image into pixel art in your browser. Set the width in cells, limit colors, dither if you want, and download a real PNG. Nothing is uploaded.

Grid

Off = drag freely, then tap Apply.

Color

100

Adjust

0
0
0

Grid lines are drawn on the large PNG only. Changing width or colors rebuilds the grid and clears hand edits.

Drop an image, or tap to choose one

PNG, JPG, WebP, GIF, SVG · 15 MB max · stays in this browser

Export Options

File format

1 pixel per cell — the real pixel-art file.

Select a swatch, then paint, fill connected cells, or replace every cell of the color you click. Alt-click also fills. Merge crumbs folds colors with 8 or fewer cells into the nearest remaining color. Undo covers the last stroke or fill.

Background / unfilled cells. Everything else becomes fill colors on the printable puzzle.

Make plan


            

A common square pegboard is 29×29 (841 pegs). The list counts how many 29 boards you need if you join them. Switch Palette to Perler, Hama, or Artkal for community-measured codes.

Drill codes follow the same published floss list many kits print. Confirm against your kit chart before you order bags.

Shopping list includes a rough skein guess (~1800 stitches per skein for 2 strands on 14-count). Adjust for your strand count and leftover floss.

Download PDF builds an A4 pack: cover page with the shopping list, then chart tiles with a 2-cell overlap on large grids.

Floss numbers, drill codes, and bead codes are references from published community lists. Match them to a real card, kit chart, or beads you own before you buy. DMC, Perler, Hama, and Artkal are trademarks of their owners. Pixelate Tools is not affiliated.

These clues describe the grid you see. They are not checked for a unique logical solution. Print or Download PDF always makes two pages: the puzzle (clues + blank grid + color key) and the answer key. Pixelate Tools has no Nonogram player — play on NonogramGo. Width is capped at 45 so the sheet fits A4. Colors are capped at 10 (including the empty color).


          
        

Also make

Upload a picture, pick how many cells wide it should be, and download a PNG where each cell is one solid color. A 1200×900 photo at width 40 lands near 40×30. Count the cells. That's the art.

Sunset, Stones, and Ridge draw an example in the tab so you can play with sliders before your own file. They're not stock photos. Your upload stays on the device. Cap is 15 MB; GIF uses frame one only. Nothing here uploads; you'll keep the file on your machine.

Start here

Indie game folks use this for props and backgrounds. Streamers mock up emotes here, then resize elsewhere. Teachers demo grids in class. If your first question is "which DMC number is that green" or "which Perler code," jump to the craft links below. If it's "how wide should this be," you're on the right page.

Nothing leaves the browser. No account, no cloud queue, no training on your upload. That matters when the file is a family snapshot or a logo that isn't public yet. Close the tab and it's gone unless you saved a PNG.

Default sliders

Width 32, 12 colors, dither off, source palette. Thirty-two is enough to read a face without giving every pore its own hex. Twelve colors is a median cut that still looks like art, not a poster. Dither off means one solid hex per cell, which is what most importers expect.

Width is the number that counts. 16 reads as an icon, 32 as a character, 48 as a simplified photo, 64 keeps more of a face. The line under the canvas estimates source pixels per cell. About 8×8 inside each cell and you're still close to the photo. About 30×30 and fine detail is already gone, which is usually the point.

Colors runs a median cut. Ask for 12 and the legend shows up to 12 hex values, busiest first. "No color cut" keeps every sampled color and that's how you get a blocky photo with hundreds of entries. Dither is optional: off for flat cells, Floyd–Steinberg to fake gradients in a small palette, Atkinson for sharper speckle. For stitch or bead charts, leave dither off and open those tools instead of forcing craft through this page.

Pico-8, handheld green, Pixelate Sunset, and Pixelate Ink are built in. Paste your own hex list too; it saves in this browser only. The page won't pull palettes from elsewhere. General color-count advice lives in how many colors.

Run it once

Load a file or tap an example. Read the meta line under the canvas for cell count. Move width until the subject reads at arm's length. Nudge colors one step at a time. Flip dither only when skies or skin band into stripes. Pick a fixed palette when the jam rules already named the hex list.

When the preview's close, choose format PNG and hit Download before you paint. That's your baseline. Click a swatch, then a cell, to fix mistakes. Fill for connected blobs; Replace all swaps every cell of a color. Ctrl+Z undoes a stroke. Drop the corner color when a flat backdrop should go transparent. It only removes a hex if at least two corners share it, so check it didn't eat the subject. Alpha workflow details are in transparent pixel sprites, even if you're not making a game asset.

Gray mush? Bump contrast a notch before you widen the grid. The fix order is in fix a muddy conversion. Don't widen first; you'll just add noise.

If it looks muddy

Feeding the big preview PNG back through the converter is the classic accident. That file isn't one pixel per cell anymore. Always export actual size for reuse. Chasing width first hurts too: 96 wide with twelve colors often brings back camera noise. Drop width or colors instead. You can't un-blur a scaled preview in a second pass.

Dither on a chart-bound image gives speckles that become two symbols on paper. Turn dither off and open the stitch or bead tool. "No color cut" on a photo can yield hundreds of one-off hex values. Fun once, unmanageable in an editor after that.

Square lock changes aspect ratio. Leave it off for portraits unless you need a square texture. JPG never gains transparency here. Use PNG input or paint the backdrop away by hand.

Which download

Format PNG matches the meta line: 32×24 on the label means a 32×24 pixel file. Use it in engines, chat tools, and print at exact pixel scale. Preview is the same cells drawn larger for inspection. Grid lines, when Apply grid is checked, show on Preview only. They aren't baked into the actual-size PNG unless you screenshot the stage.

Crisp vs blurry imports are often engine settings, not the export button. Read actual size vs big preview before you post a scaled-up file and wonder why edges went soft.

Wrong page?

Game assets belong on the sprite converter. Swatches alone: palette from image. Stitchable patterns: cross-stitch chart. Pegs: fuse bead chart. Drills: diamond painting chart. Silhouette row/column numbers: Nonogram clues. Photos work on this page too — raise width toward 48 and turn on Floyd–Steinberg when skies band.

What counts as pixel art vs a phone filter is in what is pixel art. A click-by-click photo path is how to turn a photo into pixel art.

Questions

Does the image get uploaded?

No. Everything runs in this tab. Close the browser and the picture's gone unless you saved a PNG.

What do the export formats mean?

Pick PNG for 1 pixel per cell (games, Discord, chat). Preview scales the same grid up to view or share. Chart adds letters for stitch, beads, or diamond. PDF prints an A4 sheet. Grid lines only hit Preview when Apply grid is checked.

Can I use the result commercially?

Yes, if you own or licensed the photo. Pixelate Tools doesn't claim your export. It won't clear someone else's copyright for you.

Is this an AI generator?

No. It downsamples your upload onto a grid and snaps colors. There's no text prompt and no new picture drawn from scratch.

What happens if I change width after I painted cells?

The grid rebuilds from the source and your paint goes away. Lock width and colors first, or export before you touch a slider.

Updated 30 September 2026