Blurry QR Code Reader
Got a blurred or low-quality QR code that your phone won't scan? Add a photo or screenshot. The tool cleans it up in several ways, tries to decode each version and shows you what the code says. It can also redraw the code sharp.
- 1Add the image
- 2Read it
- 3Get a clean copy
1Add the QR code image
or drop an image here, or paste a screenshot with Ctrl/Cmd+V
If the picture shows more than the code, drag across the image to select just the QR code, then press Read selected area.
Your image never leaves your device. All the clean-up and decoding runs in your browser. We count visits and finished downloads (tool name only) with analytics that sets no cookies.
2What the code says
3Re-create a clean QR code
A new, sharp code that holds exactly the text above. It looks plain: colours and logos from the original aren't copied.
Level M can restore about 15% of the code’s data if it gets dirty or damaged, level Q about 25%. Higher levels make a denser code.
How it reads a blurry QR code
A phone scanner looks at the picture once, as it is. This tool makes up to 18 cleaned-up versions of your image and tries to decode each one, with two different decoders, until one works:
- Grayscale and contrast stretch, so faded or dark photos use the full range from black to white.
- Sharpening and deblurring (unsharp mask and a deconvolution that guesses how wide the blur is) to pull soft edges back into squares.
- Adaptive threshold: every pixel is set to black or white compared with its own neighbourhood, which copes with shadows and uneven light.
- A slight blur first for grainy, noisy photos, so the speckle doesn't break up the squares.
- Scaling up ×2 or ×3 for tiny codes, and down for large, soft photos.
- Inverting for light codes on a dark background.
- Your selection: drag a box around the code so the decoders only look at that part.
It shows the text only when a decoder has read the code and its built-in error check has passed. It never guesses missing parts. If nothing can be read, it says so.
How well it works: our test
We made 40 real QR codes (web links, Wi-Fi logins and text, at all four error correction levels), damaged copies of them in known ways, and counted how many could be read. The first two columns are a single scan of the unchanged image by one decoder on its own: jsQR 1.4.0, and ZXing (zxing-cpp, through zxing-wasm 3.1.6, with its "try harder" option on). This tool runs both of them, on the image as it is and on cleaned-up versions.
| Damage | jsQR alone | ZXing alone | This tool |
|---|---|---|---|
| Clean code (no damage) | 40 of 40 | 40 of 40 | 40 of 40 |
| Slight blur (a quarter of a square) | 40 of 40 | 40 of 40 | 40 of 40 |
| Blur of half a square | 0 of 40 | 20 of 40 | 40 of 40 |
| Blur of half a square, dim and unevenly lit | 0 of 40 | 0 of 40 | 40 of 40 |
| Blur of three quarters of a square or more | 0 of 40 | 0 of 40 | 0 of 40 |
| Strong JPEG compression (quality 5 to 20) | 40 of 40 | 40 of 40 | 40 of 40 |
| Blur of half a square plus strong JPEG compression | 0 of 40 | 0 of 40 | 1 of 40 |
| Grainy photo (heavy noise) | 0 of 40 | 0 of 40 | 40 of 40 |
| Very grainy photo | 0 of 40 | 0 of 40 | 30 of 40 |
| Grainy and blurred by half a square | 0 of 40 | 0 of 40 | 0 of 40 |
| Photographed at a 50° angle | 28 of 40 | 32 of 40 | 32 of 40 |
| Photographed at a 60° angle | 0 of 40 | 32 of 40 | 32 of 40 |
| 45° angle and blurred by half a square | 0 of 40 | 1 of 40 | 32 of 40 |
| Tiny: 1.5 pixels per square | 31 of 40 | 40 of 40 | 40 of 40 |
| Tiny: 1.2 pixels per square | 3 of 40 | 11 of 40 | 35 of 40 |
| Phone-like photo: light blur, grain, JPEG, 20° angle | 23 of 40 | 40 of 40 | 40 of 40 |
| Phone-like photo: more blur, grain, JPEG, small | 0 of 40 | 0 of 40 | 0 of 40 |
Test run on 27 Oct 2026 in Chromium. Blur is a Gaussian blur measured in QR squares ("modules"). No result was ever a wrong text: when the tool couldn't read a code, it said so. Real photos can be harder than these test images.
Tips when it can't read your code
- Take a new photo if you can. Clean up can only do so much: a sharp photo beats any fix. Hold the phone steady, tap to focus on the code, and step back a little if it's too close to focus.
- More light, no glare. Light the code evenly and tilt the phone to get rid of reflections on glossy paper or screens.
- Crop to the code. Drag a box around just the code. Include a little of the white border around it.
- Use the original file. A screenshot of a screenshot, or a photo sent through a chat app, loses detail each time.
- Face it straight on. A steep angle squeezes the squares at the far side.
FAQ
What to do if a QR code is blurry?
First try a better photo: more light, a steady hand, and let the camera focus. If that isn't possible, for example because you only have a blurry screenshot, add it here. The tool sharpens, deblurs and cleans the image in several ways and tries to decode each version. If it reads the code, you get the text and can download a sharp new copy.
How can I decode a blurry QR code?
Choose the image above, or paste it. Decoding starts by itself. If the picture shows more than the code, drag a box around the code and press Read selected area. The decoded text appears on the right, with a link if it's a web address.
Can it fix any blurry QR code?
No. If the blur is so strong that neighbouring squares have melted into each other, the information is gone and no tool can bring it back reliably. In our test it read codes blurred by about half a square, but not codes blurred by three quarters of a square or more. It will never invent text: it only shows a result that passed the code's own error check.
Why won't my QR code scan?
The usual reasons are blur from movement or focus, low light, glare, a photo taken at a steep angle, a code printed too small, or low contrast between the code and its background. Light codes on dark backgrounds also confuse many scanners. A damaged code can still scan: QR codes carry error correction that lets them be read even when part of the code is dirty or damaged.
Is the clean copy the same QR code?
It holds the same text, so it opens the same link or shows the same message. The pattern can look different, because it's made fresh with the error correction level you pick. If the original was a short or tracking link from a QR service, the copy points to that same link, so it only works while that service keeps the link alive.
Is it safe to open the link in the code?
The tool never opens a link by itself. It shows the address so you can check it first. Only open it if you trust where the code came from, and look closely at the address: QR codes on stickers, parking meters and unexpected emails are sometimes used to send people to fake login or payment pages.
Does this tool upload my image?
No. The image is read, cleaned and decoded by your browser on your own device, and the camera picture stays there too. Nothing is sent to a server. The page counts visits and finished downloads (tool name only) with analytics that sets no cookies, and no file data is ever sent (see privacy).