Pixel art upscaler

Enlarge sprites by a whole number so every pixel stays a sharp square: no blur, no new colours. Drop an image or try the sample below.

Scale

Your upscaled image appears here.

Why pixel art blurs when you resize it

Image editors and browsers resize photos with bilinear or bicubic filtering, which averages neighbouring pixels. On a photo that looks smooth. On pixel art it melts hard edges into in-between colours, and at a non-integer scale such as 2.5× some pixels end up wider than others. The fix is to scale by a whole number and copy pixels instead of blending them.

Nearest neighbour or Scale2x?

MethodWhat it doesUse it for
Nearest neighbourEvery pixel becomes an exact N×N squareStore pages, itch.io screenshots, printing, anything that should look exactly like the original
Scale2x / Scale4xFills corners where edges meet, softening stair-step diagonals; still only original coloursLarge posters or icons where a rounder look is wanted

Choose the scale with the pixel-perfect scaling calculator: it finds the largest whole number that fits a 1080p, 1440p or 4K screen. If you are building a sprite sheet, upscale after packing it with the sprite sheet maker, or better, keep it at 1× and let the engine scale it with point filtering.

Upscaling is not converting

This tool assumes the input is already pixel art. To turn a photo into pixel art, use the image to pixel art converter; for a mosaic effect at the original size, use pixelate image. The editor also exports PNGs at 1–20× directly.

Frequently asked questions

How do I upscale pixel art without blurring it?

Use a whole-number scale (2×, 3×, 4×…) with nearest-neighbour sampling, so every original pixel becomes an exact square block. Smooth resampling (bilinear, bicubic, and most AI photo upscalers) blends neighbouring colours and leaves soft, muddy edges. This tool only does whole-number nearest-neighbour or Scale2x, so no new colours are invented.

What is Scale2x (EPX)?

A pixel art scaling rule published by Andrea Mazzoleni, based on Eric Johnston’s EPX algorithm from LucasArts. Each pixel becomes a 2×2 block, and where two neighbouring edges share a colour the corner is filled to round off staircase diagonals. It uses only colours already in the image. Applied twice it gives Scale4x.

Why does my sprite look blurry in my game engine after upscaling?

The engine is filtering the texture. Set the filter to nearest/point (Unity: Filter Mode Point and Compression None; Godot: Texture Filter Nearest; Phaser: pixelArt: true; CSS: image-rendering: pixelated). Then you often do not need to upscale the file at all.

My image is already enlarged and slightly off. Can it be fixed?

If the image was enlarged by a whole number, the tool detects the block size and samples the centre of each block to recover the original 1× sprite before rescaling. That also removes stray anti-aliased edge pixels. Images resized by fractional amounts or saved as JPEG cannot be restored perfectly.

Is my image uploaded?

No. Everything runs in your browser on a canvas; the file never leaves your device.