16, 32, and 64

Photo to sprite

Make a 16, 32, or 64 pixel sprite from a photo or logo. Eight colors, dithering off, optional transparent backdrop, small PNG export.

Grid

Off = drag freely, then tap Apply.

Color

100

Adjust

0
15
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

A sprite is a small grid, a short palette, and usually a transparent outside. This page opens at 32 cells, 8 colors, dither off, contrast 15, corner-color removal on. Character-sized start, not an icon and not a portrait study. You'll tweak width before you're done.

16 for a prop or inventory icon, 32 for a person, 64 if the face has to stay a face. Square lock is off so a standing figure can be 32×48. Turn Square on when the engine wants a square texture. Why one-pixel outlines vanish on a phone is in sprite sizes. Discord 128 and Twitch 28/56/112 targets are in Discord and Twitch pixel sizes. Don't import a screenshot of the canvas; you'll bake the checkerboard in.

Jam-sized grids

Game jam devs, RPG Maker folks, anyone importing a small PNG with alpha. Streamers mock up emotes at 32 or 64 here, then upscale in the platform uploader, not in this tab. Logo makers with flat backdrops fit too, especially with corner removal on. It's sprite mode end to end; don't expect floss symbols.

Not the page for a wide dithered photo study; open the pixel converter and raise width. Not DMC floss or Perler peg counts either. Here for bead codes? Wrong tab.

Why 8 colors

Thirty-two cells wide targets walk-cycle-sized characters. Eight colors keeps silhouettes readable on retro hardware and modern phones. Dither off means one hex per cell for clean indexing. Contrast at 15 separates hair from skin before the cut. Drop the corner color on assumes a white or flat edge around the subject, common for logos and isolated PNGs.

Engine doc says 16×16 tiles? Set width to 16 before you paint details you can't keep. Art bible already lists hex values? Paste them as a custom palette instead of trusting source colors. If you're not sure, start at 32 and drop later.

Import checklist

Upload PNG with alpha when you've got it. JPG works for quick tests but won't export transparency. Set width to the engine's native size when you know it. Legend shows two near-grays? Lower colors or raise contrast, then rebuild.

Toggle Drop the corner color and inspect subject corners. Uncheck if the shirt touches the frame edge. Pick a swatch and clean stray backdrop cells. Replace all merges accidental duplicates. Choose format PNG, Download, and verify dimensions in your file browser before importing.

In the engine, set texture filtering to nearest neighbor. Blurry edges usually mean you imported big preview or the engine scaled up. Checklist: actual size vs big preview.

Blurry edges

Screenshotting the canvas bakes the checkerboard as gray pixels. Use the download buttons. Dither on a 32-wide face reads as noise, not shading. Add a second highlight color by hand instead.

Twelve colors on a sprite meant for an eight-color scene makes the character look pasted in. Match the jam palette via Pico-8 or pasted hex. Outlines that match the backdrop vanish when corner removal runs; paint the outline a darker hex first.

Still looks like a shrunken photo? Width's too high for the color count, or contrast is too low. See fix a muddy conversion with sprite sizes in mind. Don't assume the engine will fix a soft import; it won't.

Actual size only

Format PNG is the file that belongs in a game project. It matches the meta line exactly. Preview is for human review and Discord posts, not re-import. Grid lines on Preview are optional guides; they must not show up in the actual-size download.

Symbol chart exports don't apply here; this page stays in pixel mode. Need swatches from the same photo for UI chrome? Copy hex from the legend or hit palette from image.

Alpha and corners

The checkerboard is the page, not a baked pattern. Actual-size PNG stores alpha. JPG can't. Drop the corner color clears a hex when at least two corners agree: fine for a logo on white, bad if the subject touches every corner. Holes in the shirt? Uncheck it. Painting the backdrop by hand on a 32-wide grid is a short job and won't eat the outline. Read transparent pixel sprites before you screenshot the stage and trap the checkerboard in the file.

Wrong page?

Wider photo grids: pixel converter. Craft patterns with symbols: cross-stitch or fuse beads. Hex lists without a grid: palette from image. Same engine: pixel converter.

Palette discipline: how many colors and Pico-8 palette. Everything runs in the browser; there's no upload queue. It's the same PNG pipeline with tighter defaults.

Questions

Which file do I put in the game?

Format PNG (1 pixel per cell), then Download. A 32×32 sprite should be 32 pixels wide. Turn Apply grid off so lines don't sneak into a Preview file you grab by mistake.

Why did my outline disappear?

Drop the corner color stripped a hex shared by two corners. If the outline matched the backdrop, uncheck it and paint backdrop cells yourself.

Should sprites be dithered?

Usually no. On 32×32, dither reads as noise, not tone. Paint one highlight cell instead.

Can I use a photo directly at width 16?

You can, but faces rarely survive. Use 16 for props and icons; bump to 32 or 64 for characters. You'll know in ten seconds if 16 was a mistake.

Why is contrast higher here than on the main converter?

Small grids need stronger separation before the median cut, or edges collapse into one muddy hex. That's why this page opens at 15, not zero.

Updated 30 September 2026