CrispKit › Guides

Why is my QR code blurry, and can it still be read?

By CrispKit · Last updated

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:

LevelData it can restoreDENSO WAVE's advice
LAbout 7%Clean places, codes holding a lot of data
MAbout 15%The level most often chosen
QAbout 25%Places where codes get dirty, such as factories
HAbout 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.

DamageOne decoderThe reader
Blur of a quarter of a module40 of 4040 of 40
Blur of half a module20 of 4040 of 40
Half a module, dim and unevenly lit0 of 4040 of 40
Three quarters of a module or more0 of 400 of 40
Strong JPEG compression only40 of 4040 of 40
Half a module plus strong JPEG compression0 of 401 of 40
Tiny: 1.2 pixels per module11 of 4035 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

How to fix it

  1. 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.
  2. 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.
  3. Crop to the code with a little white border around it, so the scanner isn't distracted by the rest of the picture.
  4. 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.
  5. 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

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

  1. Open the Blurry QR Code Reader and add the photo or paste a screenshot.
  2. If the picture shows more than the code, drag a box around the code.
  3. 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 Reader

FAQ

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.

  1. 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".
  2. 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).
  3. 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.
  4. DENSO WAVE, Point for setting the module size. "The larger the module is, the more stable and easier to read."
  5. DENSO WAVE, Point for determining the code area. A QR code "requires a four-module wide margin at all sides".
  6. 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.