Pixel art and QR codes go soft when enlarged — smoothing is the reason
2026-10-26
You have a crisp little piece of pixel art, or a QR code saved at 200 pixels, and you need it four times bigger. You resize it, and the hard square edges come back as soft, fuzzy gradients. The tool didn't malfunction; it did exactly what it does to every image. That's the problem.
What a resizer has to decide
Enlarging an image means inventing pixels that weren't there. A 100-pixel row becoming 400 pixels needs 300 new values, and there are two broad ways to get them:
- Nearest neighbour: copy the closest original pixel. Every source pixel becomes a sharp-edged block. Perfect for pixel art and QR codes; ugly for photos, which turn blocky.
- Smoothing (interpolation): blend neighbouring pixels to produce in-between values. Photos enlarge gracefully; hard edges turn into short gradients.
What our resizer does
Our resize tool draws every image through the browser's canvas with smoothing on, at the browser's high-quality setting. There is no switch to turn it off. That's the right default for what people mostly resize — photos, screenshots, banners — and it's why a QR code or a 32×32 sprite comes out soft at the edges: every boundary between a black module and a white one gains a band of grey.
The same smoothing applies when shrinking, and inside Batch edit's resize step. Reducing a QR code also blends its edges — just over fewer pixels.
Why the tool tries to stop you enlarging
Enlargement is blocked by default. With Do not enlarge if smaller ticked — it starts ticked — asking for a width bigger than the original leaves the image at its original size, with a note saying so. The one exception is when you type both an exact width and an exact height with the aspect ratio unlocked, because changing proportions sometimes needs one side to grow. When an image does get enlarged you see a warning: Smaller than target, will be upscaled — quality will drop.
You can untick the box and enlarge anyway. For photos that's a reasonable trade if you accept some softness. For pixel art and QR codes, it's the wrong tool.
The better route: make it at the size you need
- QR codes are generated, not photographed. Go back to whatever made the code and export it again at the size you need — or as SVG, which stays sharp at any size. The new one encodes the same link and has perfectly hard edges, with nothing blended.
- Pixel art should be scaled in an editor that offers nearest neighbour scaling, ideally by a whole-number factor (2×, 3×, 4×) so every original pixel becomes an identical square block.
- Logos and icons almost always exist as a vector file somewhere. Exporting a bigger PNG from the vector beats enlarging a small PNG every time.
When our resizer is still fine
If you're shrinking a large, clean QR code or a pixel graphic for a web page, the softening is limited to a pixel or so at each edge. Check the result preview on the page before you download. And everything happens in your browser, so there is no upload of a QR code that might point somewhere private.
What we deliberately don't do
No "AI upscaling" that redraws edges to look sharp. For a photo, an invented edge is a matter of taste; for a QR code, an invented module is a different code. If the original information isn't there, the honest answer is to regenerate the image, not to guess it.
The short version
- Our resizer always smooths — great for photos, soft for hard pixel edges.
- Enlarging is blocked by default unless you type exact width and height.
- QR codes: regenerate at the needed size or as SVG.
- Pixel art: nearest-neighbour scaling in an editor, by whole-number factors.
No sign-up, nothing uploaded — it runs in this tab.
Resize image →