Why is my QR code blurry, and can it still be read?
A blurry QR code can often still be read, as long as the blur is smaller than about half of one of its squares. Once the blur is wide enough that neighbouring squares run into each other, the data is gone and no scanner or app can reliably get it back.
Most blur comes from a moving hand, a camera that hasn't focused, or a code that is too few pixels wide. Try a sharper photo first; if you only have the blurry one, the Blurry QR Code Reader cleans it up in several ways and tries to decode each version.
What a scanner needs to see
A QR code is a grid of dark and light squares called modules. DENSO WAVE, the company that invented the QR code, says a version 1 code is 21 modules wide and each version adds 4, so version 2 is 25 and version 3 is 29. The scanner finds the grid, then decides for every module whether it is dark or light. DENSO WAVE describes reading as based on the difference in light reflected by the dark and light areas.
Blur smears each module into its neighbours. A little only softens the edges; more pulls every module towards grey and the scanner guesses wrong. So what matters is the blur's width compared with one module, not how blurry the picture looks.
Error correction: L, M, Q and H
Every QR code carries extra data that lets a scanner rebuild parts it can't read. The rules for it are set in the QR code standard, ISO/IEC 18004 (the current edition, the fourth, was published in August 2024). The person who makes the code picks one of four levels. DENSO WAVE gives the share of the code's data each level can restore:
| Level | Data it can restore | DENSO WAVE's advice |
|---|---|---|
| L | About 7% | Clean places, codes holding a lot of data |
| M | About 15% | The level most often chosen |
| Q | About 25% | Places where codes get dirty, such as factories |
| H | About 30% | Places where codes get dirty, such as factories |
The catch, in DENSO WAVE's words, is that raising the level "also increases the amount of data", so the same link needs more modules and each one gets smaller at the same print size.
Error correction is made for damage in one place: a scratch, a stain, a logo pasted over the middle. Blur is different, because it affects every module at once. In our test (below), codes made at all four levels were equally unreadable once the blur reached three quarters of a module, so level H doesn't rescue a badly blurred photo. It helps most with small blur plus a bit of damage, where only some modules are read wrong.
How much blur is too much? Our test
We made 40 QR codes (links, Wi-Fi logins and text, at all four error correction levels), damaged copies of them in measured ways, and counted how many could be read. "One decoder" is ZXing on its own reading the image once, as many scanner apps do; "the reader" is our Blurry QR Code Reader, which also tries cleaned-up versions.
| Damage | One decoder | The reader |
|---|---|---|
| Blur of a quarter of a module | 40 of 40 | 40 of 40 |
| Blur of half a module | 20 of 40 | 40 of 40 |
| Half a module, dim and unevenly lit | 0 of 40 | 40 of 40 |
| Three quarters of a module or more | 0 of 40 | 0 of 40 |
| Strong JPEG compression only | 40 of 40 | 40 of 40 |
| Half a module plus strong JPEG compression | 0 of 40 | 1 of 40 |
| Tiny: 1.2 pixels per module | 11 of 40 | 35 of 40 |
Half a module of blur is the edge: one decoder read half the codes and clean-up read all of them. Past three quarters of a module nothing worked. Compression alone was harmless, but on top of blur it broke almost every code, which is why a blurry photo forwarded through a chat app is so much harder to read. The full table, with noise and angle tests, is on the reader's page.
Common causes of a blurry QR code
- Motion. A moving hand smears the whole code in one direction, worse in dim light when the shutter stays open longer.
- Focus. Holding the phone too close is the usual cause: the camera can't focus and the whole code goes soft. Step back a little and let it focus.
- Too few pixels. A code cropped from a wide photo or a small thumbnail may have one or two pixels per module. Enlarging it adds no detail.
- Re-saving. Every screenshot of a screenshot, and every photo sent through a messaging app, can lose detail again.
- Print. Very small codes, ink that spreads on soft paper, and glare on glossy stock all blur the modules on the page itself. DENSO WAVE's advice is that larger modules are "more stable and easier to read" and that a code needs a clear margin four modules wide on every side.
How to fix it
- Take a new photo if you can. Hold the phone steady, tap the code to focus, add light and tilt the phone to get rid of reflections.
- Use the original file. Ask for the image itself rather than a screenshot of it, or a photo sent as a file rather than as a picture in a chat.
- Crop to the code with a little white border around it, so the scanner isn't distracted by the rest of the picture.
- Run it through the Blurry QR Code Reader. It sharpens, deblurs, evens out the light and enlarges small codes, and shows the text only when a decoder's built-in check has passed. It never fills in missing parts.
- Make a clean copy. Once the reader has the text, it can redraw it as a sharp QR code in PNG or SVG, so you don't have to scan the blurry one again.
If it's your own code that people struggle to scan, make it again at level M or Q, print it bigger, keep the four-module margin, and use strong contrast. Our guide to QR code colours shows which colour pairs scanned in our test, and the QR Code Color tool checks a code before you download it.
When it can't be recovered
- The blur is three quarters of a module or wider, so neighbouring modules have merged.
- The code is both blurred and heavily compressed, as in a forwarded chat image.
- More of the code is missing or covered than its error correction level allows (about 7% at L, up to about 30% at H).
Then the only fix is a better copy: the original file, or a new photo of the printed code.
Blurring a QR code on purpose
Some people searching for "blur QR code" want the opposite: to hide a code on a ticket, boarding pass or screenshot before posting it. Light blur is not enough. In our test every code blurred by a quarter of a module still scanned, and clean-up read all of them at half a module. Our test is not a guarantee about other tools either, so don't rely on blur at all: cover the whole code with a solid block of colour, or crop it out.
Try the free Blurry QR Code Reader
- Open the Blurry QR Code Reader and add the photo or paste a screenshot.
- If the picture shows more than the code, drag a box around the code.
- Read the text, then download a sharp copy if you need one.
The image is read in your browser on your own device and never uploaded.
Open the Blurry QR Code ReaderFAQ
Can a blurred QR code still be scanned?
Often, yes. In our test a blur of a quarter of a module didn't stop any of 40 codes, and half a module was readable after clean-up. At three quarters of a module or more, none were readable.
Does a higher error correction level fix blur?
Not much. Levels L, M, Q and H restore about 7, 15, 25 and 30% of the data, which suits a stain or a logo in one spot. Blur affects every module, and in our test codes at all four levels failed at the same amount of blur.
What is a distorted QR code?
One that is stretched, bent or photographed at an angle, so the squares are no longer a straight grid. Scanners correct for some of this: in our test one decoder still read 32 of 40 codes photographed at a 60° angle. Facing the code straight on is the simplest fix.
Related
Sources
Each page below was read on 27 October 2026. The test figures come from CrispKit's own test on the Blurry QR Code Reader page, run on 27 October 2026 with synthetic damage (Gaussian blur measured in modules); real photos can be harder.
- DENSO WAVE, Error correction feature. Four levels: L about 7%, M about 15%, Q about 25%, H about 30% (from the page's table); "Level M (15%) is most frequently selected"; Q or H "for factory environment where QR Code get dirty"; raising the level "also increases the amount of data".
- ISO/IEC 18004:2024, QR code bar code symbology specification. Edition 4, published August 2024; its scope includes "error correction rules" (scope as listed by Standard Norge's catalogue entry; the standard itself is paid).
- DENSO WAVE, QR Code FAQ. Version 1 is 21 modules wide and each version adds 4; reading is based on the difference in light reflected by dark and light areas.
- DENSO WAVE, Point for setting the module size. "The larger the module is, the more stable and easier to read."
- DENSO WAVE, Point for determining the code area. A QR code "requires a four-module wide margin at all sides".
- CrispKit, Blurry QR Code Reader: our test. 40 codes at all four levels; ZXing via zxing-wasm 3.1.6 as the single decoder; run on 27 October 2026 in Chromium.