Free pixel art resizer
A pixel art resizer that shows you what it threw away
Making pixel art smaller is a run of decisions, one per cell, and every one of them discards something. So this page measures two candidate sizes at once and puts the difference in figures instead of leaving you to squint at two thumbnails: cells to place, colors still in use, colors that now win nothing, how many cells had to average four or more originals together, and whether the width divides the file evenly or thins a one-pixel line in some places and not others. Nothing to install and nothing to register; the file is read at its own size up to 2,048 px, a ceiling chosen so the sizes pixel art actually ships at land on it exactly instead of a few pixels under, and every figure on it is computed in this tab.
- 100% free
- No signup
- 2 sizes at once
- 8 to 256 cells
- Names the colors lost
Press Ctrl+V anywhere on the page to drop in the artwork you are choosing a size for — no need to click the field first.
This one gets the full chart, the color key and the printable pages below.
Halving the cells across quarters the work and the cost, which is usually the trade the second number is standing in for.
Every cell takes its own nearest color. Flat areas stay flat and the color count stays low — the right choice for anything worked by hand.
How to decide what size a piece has to be
The bill in the middle is what no other resizer puts in front of you before it resizes.
Set two sizes worth arguing about
Both sliders take a cell count between 8 and 256, and the row count follows the shape of the file. Put the size you are leaning towards on the first and the cheaper one you are tempted by on the second — 48 against 24 is a typical pair, because halving the cells across quarters the units you have to place. Both grids are measured from the same reading of the same file, so nothing in the comparison moves for any reason except the size.
Read the bill before you read the picture
The table underneath the two previews counts what each size costs: cells to place, colors still in use, colors that now win nothing at all, cells that had to average four or more originals together, and whether the width divides the file evenly. Under it the loss map shades every cell by how many original colors it swallowed, and beside that is the list of colors that dropped out, each with the number of source pixels it had been holding.
Take the chart for the size you settled on
The first size gets the full treatment: a marked chart with a symbol in every cell, the color key with an exact count and share per color, a CSV of what survived, and a print layout at 5 mm a cell that splits onto A4 sheets with two cells repeated at every join. A plain PNG without the marks is there too, for when the next step is an editor rather than a table.
Technical specifications
| Grid range | 8 to 256 cells across and always fewer than the file is wide, with the row count following the file's own proportions |
|---|---|
| Sizes measured at once | 2, both from a single reading of the file, so the only thing that differs between the two columns of figures is the size |
| Source colors | Taken exactly when the file holds 256 or fewer, which is what pixel art holds — an indexed PNG cannot address more. Past that the page derives 32 by median cut in Oklab and says outright that the loss figures now describe the palette as well as the size |
| Color counting | Up to 200,000 pixels at a fixed stride rather than at random, so one file always returns one list and reloading the page does not change the report |
| Crowding count | Distinct source colors behind every cell, counted to a ceiling of 4. Past four the finding stops changing, and stopping there is what keeps a large file affordable to measure twice |
| Even coverage | Reported as the fewest and the most source pixels standing behind any one cell. Those two are equal only when the new width divides the old exactly, and the nearest widths that do are offered as one click |
| 5 mm cells — large enough to tick off in ink — which puts 38 columns by 55 rows on an A4 sheet inside a 10 mm margin, with two cells repeated at every join | |
| What is sent anywhere | Nothing at all. No upload, no account, and no network request past the page itself |
Frequently asked questions
Which widths reduce cleanly and which ones do not?
The ones that divide the file's own width. A 64-pixel sprite taken to 32 gives every cell exactly two source pixels by two; taken to 40 it gives some cells two and others one, because 64 does not divide by 40. On artwork built out of one-pixel lines the consequence is not subtle: the same outline is kept where the cells happened to land on two pixels and thinned away where they landed on one, so a straight line appears to wander. Both candidates report the fewest and most source pixels standing behind a cell, and the nearest widths that do divide are offered as buttons.
A color vanished from the key. Why that one?
Because nothing landed nearer to it than to something else, which is settled by where a color sits among its neighbors rather than by how much of the picture it covered. A mid-tone wedged between two similar shades can hold a quarter of the artwork and still lose every cell at a smaller size, while an isolated accent holding forty pixels comes through untouched. That is why the panel lists each dropped color with the source pixels it was carrying: one that disappeared holding four pixels is a highlight nobody will miss, and one that disappeared holding eight hundred means the size is wrong.
Should I turn dithering on when I make pixel art smaller?
Usually not, and the reason is specific to this direction of work. Error diffusion restores the average color of a region by scattering the rounding error into neighboring cells, which is the right trade for a photograph and the wrong one here: it fills flat areas with speckle, and flat areas are how pixel art stays legible at small sizes. It also raises the color count at exactly the moment you were trying to lower it, and if the cells are about to become beads or stitches every extra color is another bag or another skein. Switch it on to compare, then check what it did to the color count before you keep it.
The picture went to mud at 24 cells. Is that the tool or the artwork?
It is the artwork meeting a real limit, and the loss map shows you which cells hit it. A face needs somewhere around 30 to 40 cells across before its features stop being a compromise between two colors, and a piece built out of one-pixel detail — text, a thin outline, a highlight in an eye — reaches that wall long before a piece built out of broad shapes does. When most of the map is shading three and four, no amount of dithering or palette work rescues the size, and the honest fix is more cells.
What exactly is the loss map showing?
How many different original colors each cell had to swallow. A cell at the palest end covered one color and therefore lost nothing; a cell at the darkest end covered four or more, which means the single color it now carries is an average of things that did not agree. Read it against the picture rather than on its own — crowding along an outline is normal and usually fine, whereas a solid patch of dark cells sitting across the subject's face is the size telling you plainly that it cannot hold that part of the image.
Why measure two sizes instead of just showing me one?
Because the decision is always comparative and the cost is rarely where people expect it. Dropping from 48 cells to 32 removes 55% of the units to place on a square piece, and it might cost two colors or twenty depending entirely on where those colors sat in the range; no rule of thumb predicts which for a given picture. Putting both sets of figures in one table turns 'is the smaller one good enough' into an arithmetic question with an answer, which is the only form of that question anybody can act on.
Can I reduce it now and enlarge it again later?
You can, and the second step is lossless while the first is not. Once the smaller chart exists, taking it back up by any whole multiple returns every cell as a perfect square with nothing blended, so a 32-cell reduction at 8x is a clean 256 px picture of exactly 32 cells. What no enlargement can do is return the detail the reduction discarded — it reproduces the reduction faithfully, including everything the reduction threw out. Reduce once from the original, keep that chart, and enlarge from it rather than from an enlargement of an enlargement.
About reduction as a decision you should get an invoice for
Enlarging pixel art has a right answer and reducing it does not. Going up, every original pixel becomes a square and the arithmetic is finished — that is the upscaler, whose only real judgement is refusing to do it by halves. Coming down, each cell of the new grid stands on a patch of the old one, and where that patch is not all one color something has to be chosen and something else dropped. Which is why the first number that matters is not the new width but whether it divides the old one. A 96-pixel sprite taken to 48 gives every cell precisely two source pixels by two; taken to 60 it gives some cells two and some cells one, so an outline drawn a single pixel thick survives in one corner of the picture and evaporates in another. Most resizers cannot tell you that happened, because most of them hand the file to the browser's own scaler and cannot see inside it.
The second thing a reduction kills is a color, and the surprise is always which one. Nearest-color matching is a contest between the entries on a list, so a shade survives by being isolated rather than by being common: a mid-tone with close neighbors on both sides can hold a quarter of the picture and lose every cell at a smaller size, while a lone accent covering forty pixels comes through untouched. On screen that reads as the picture getting slightly duller. On a table it reads as a color missing from the shopping list, which is the version that matters here — the count beside each surviving color is what somebody orders against, and a chart quietly two colors short is a chart that no longer describes the piece it was drawn for. So this page names the colors that dropped out and says how many source pixels each was carrying, rather than printing a color count and leaving you to work out the difference. Pulling a palette out of the picture in the first place, before any of this, is the palette generator.
The answer here is a comparison rather than a recommendation because the saving on the other side is never the same twice. Coming down from 64 cells to 40 removes 61% of the units on a square piece, which on a counted cross stitch is several evenings and on a fuse-bead board is the difference between one pegboard and four — whether that is worth two lost colors depends entirely on what those two colors were doing. Two other pages answer the same question by changing what the cells are made of instead of how many there are: the 8-bit converter keeps the grid and shrinks the palette to a machine's fixed set, and the ASCII generator swaps the cells for characters, where the grid has to be stretched first because a terminal glyph is about twice as tall as it is wide. Between those three there is usually one that makes a picture fit without asking the reduction to do all the work.
Where the file is read and where the figures come from
Your picture is opened by JavaScript running in the tab you are reading this in. It is never uploaded, never sent to a server and never stored anywhere — there is no upload step to undo, because there is no upload. Close the tab and nothing of it remains.
Both candidate sizes, the color count, the dropped list and the loss map are computed from one array of pixels held in this tab, and none of it is kept between visits — reload and the page starts again at an empty drop zone. No part of the comparison is produced elsewhere and fetched back, which is also why the figures move as fast as you can drag a slider.