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.
A single sprite, a tileset, a whole sprite sheet. Paste from the clipboard or drag a file in. Transparency is kept.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
No. The upscale runs entirely in your browser. The image never leaves your machine and nothing is stored.
Exact width and height, aspect lock, fit-inside mode. Nearest neighbour throughout.
Already blurred by a bad upscale? Recover the native grid first.
Turn a sprite into a vector file that scales to any size with no resampling at all.
Open SpriteLab to keep building with your sprites.