A QR code that scans perfectly on your screen can still fail on a printed poster, a glossy menu, or a sign across the room. This tester reads your code and then degrades it the way the real world does — softening focus, tilting the angle, adding glare and grain, shrinking it, and covering part of it — checking at every step whether it still decodes. The result is a single scannability score, a pass/fail map of every hazard, and a plain-English list of what to fix.
How to Test a QR Code
- Add your QR code. Click to choose an image, drag and drop it, paste a screenshot, or tap Use camera to photograph a printed code. PNG, JPG, GIF, WEBP, and BMP all work.
- EZQR runs the gauntlet. It reads the code, then generates dozens of degraded copies — blurred, rotated, compressed, shrunk, dimmed, and partly covered — and tries to scan each one.
- Read your report card. See a scannability score from 0 to 100, a breakdown of where your code holds up and where it breaks, targeted fixes, and a hardened, maximum-error-correction copy you can download.
What the Gauntlet Tests
Blur & focus
Simulates a camera that can't lock focus — the classic reason a printed code won't scan.
Angle & perspective
Tilts and skews the code the way a phone held off to the side sees a poster or table tent.
Glare & lighting
Adds highlights and dims the image to mimic shiny paper, screens, and dim rooms.
Small size & distance
Shrinks the code to test whether fine detail survives when it's printed small or scanned from far away.
Damage & obstruction
Covers part of the code — a scuff, a sticker, a logo — to measure its error-correction headroom.
Compression & noise
Runs it through harsh JPEG compression and sensor grain, the way messaging apps and cheap cameras do.
Why a QR Code Fails to Scan
Most unscannable codes fail for one of a handful of reasons — and the report card pinpoints which one is yours:
- Low contrast — light modules on a light background, or a busy photo behind the code, leave scanners nothing to lock onto.
- No quiet zone — a QR code needs a clear border of empty space around it; crop it too tight and many readers give up.
- Too much data — a long URL packs the pattern dense, so it dies the moment it's shrunk or slightly blurred.
- Low error correction — level L or M looks fine clean but has almost no margin for glare, damage, or a logo.
- Printed too small — below the size a camera can resolve at scanning distance, fine modules blur together.
From "It Might Scan" to "It Will Scan"
The tester doesn't just grade your code — it hands you a hardened copy regenerated at error-correction level H, the most damage-tolerant version, pointing to the same place. Want to go further? Rebuild it in the custom QR code generator with your colors and logo while keeping the contrast and quiet zone that keep it scannable, or make a crisp vector QR code that stays razor-sharp at any print size.
Test Before You Print — Then Stay Editable
Testing catches a code that won't scan. But even a perfectly scannable static code has a second failure mode: it's locked to one destination forever, so if the link is wrong — or just changes — you reprint. Dynamic QR codes let you change where the code points after it's printed, and track every scan, so you can confirm it's working in the real world instead of hoping.