TOOLS › UPSCALE PIXEL ART
FREE · NO SIGN-UP · RUNS IN YOUR BROWSER

Upscale Pixel Art without blur

Nearest-neighbour only. Pick 2x, 4x, 8x, 16x or any whole number up to 32x and every pixel becomes a clean square block. No smoothing, ever.

1 · YOUR SPRITE

DROP, PASTE OR BROWSE
PNG, JPG, WebP or GIF · up to 16 megapixels

2 · FACTOR

Scale ×4
custom, 1 to 32
Whole numbers only. The output can be at most 8192 px on a side.
Is the source itself blurry? Run it through Fix pixel art first to recover the native pixels, then upscale the clean version.
Result appears here
NOTHING HERE YETDrop a sprite on the left. It upscales the moment it lands, and again every time you change the factor.

How it works

Drop in a sprite

A single sprite, a tileset, a whole sprite sheet. Paste from the clipboard or drag a file in. Transparency is kept.

Pick a whole-number factor

Tap a chip or type any factor from 1 to 32. The preview updates live and the meta line shows the input and output sizes.

Download the PNG

Each source pixel becomes an exact k by k block. Zoom in on the preview at 1x if you want to check the edges yourself.

Why integer factors, and why not bilinear

Pixel art is a grid of deliberate squares. Any upscaler that blends between them is destroying the thing that makes it pixel art. The only resampler that keeps every square a square is nearest neighbour at a whole-number factor.

Bilinear / bicubic

Averages neighbouring pixels to make a smooth ramp. Great for photos. On a sprite it turns a crisp 1 px outline into a soft grey band and smears the palette into hundreds of in-between colours.

Nearest neighbour, integer

Copies each pixel into a solid block of k by k. At 4x a 32 px sprite becomes 128 px and still has exactly the same colours and exactly the same edges, just bigger.

Nearest neighbour, fractional

At 2.5x, some pixels become 2 wide and others 3 wide. Straight lines get a visible stutter and diagonal steps come out uneven. It is sharp but it is wrong.

When to skip upscaling

Game engines scale for you. Ship the native file, set the texture filter to nearest or point, and let the engine draw it at any zoom. Upscale here for sharing, thumbnails and store pages.

FAQ

Why does my pixel art go blurry when I resize it?

Most image editors and messaging apps resize with bilinear or bicubic smoothing, which blends each pixel into its neighbours. That is right for photos and wrong for pixel art. This tool uses nearest neighbour, which copies each pixel into a solid block and never blends.

Which factor should I use?

For posting online, 4x to 8x makes a 32 px sprite readable on a phone. For a game engine, do not upscale at all; keep the native file and let the engine scale it with filtering off. For print, work out the pixels per inch you need and pick the whole number that gets you there.

Can I upscale by 2.5x or 150%?

Not here, on purpose. A fractional factor means some source pixels become 2 output pixels and others become 3, so lines wobble. If you need an exact non-integer size use the resize tool, which warns you when that happens.

Does it work on animated GIFs?

It upscales the first frame only. For a whole animation, convert the GIF to a sprite sheet, upscale the sheet here, then rebuild the GIF with the sprite sheet to GIF tool.

Is anything uploaded?

No. The upscale runs entirely in your browser. The image never leaves your machine and nothing is stored.

More free tools

In the app

Open SpriteLab to keep building with your sprites.