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.
Test QR Codes You Can Scan Right Now
Just need a sample QR code to scan - a QR code test image to check that your phone camera or scanner app is working? Point it at any of the codes below. Each one is real and valid: if it decodes, your scanner is good to go. They're also a safe set of codes to practice scanning with if you're showing someone how, and they're free to reuse as test images in your own documentation, app screenshots, or QA runs.
https://ezqr.ca/ You scanned a test QR code - it works! ✓ (ezqr.ca) geo:43.6426,-79.3871 These are static QR codes, encoded directly into the image - nothing is tracked when you scan them. Want to check a code you made instead? Upload it above and EZQR grades how reliably it will scan once it's printed and out in the real world.
QR Code Scanner Test: Check Your Reader, Not Your Code
If what you actually want is a QR code scanner test - proving that a phone camera, a scanner app, a handheld barcode reader, or a kiosk scanner is reading codes properly - the sample codes above are the test set. Work through them in order, because each one exercises a different part of the reader:
- The website code checks the whole chain: decode, recognize a URL, and hand it to a browser. Most scanners get this right or fail obviously.
- The plain-text code is the one that separates readers. A proper QR code reader test shows the text itself; a scanner locked to URLs may show nothing at all, which tells you it will choke on WiFi, vCard, and SMS codes too.
- The map code checks that the reader passes structured data (a
geo:pin) to the right app rather than dumping raw characters on screen.
Then test the conditions, not just the codes. Back away until the read fails and note the distance; tilt the phone until it stops decoding; try it in a dim room and under a bright light. A scanner that only reads a code held flat at 10 cm in good light will fail on a wall sign. If a reader misses all three samples, the problem is the reader or its permissions - not your QR code.
Testing a scanner app you are choosing between? Run the same three samples through each one. And if you would rather scan than be scanned, EZQR has a browser-based QR code scanner that needs no install.
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.
Validate a QR Code Before You Commit to It
"Is this code valid?" and "will this code work?" are two different questions, and it's worth separating them. Validating a QR code means confirming the image really does contain a well-formed, decodable code and that it encodes the content you meant - which this page checks the moment you upload, by decoding the code and showing you its exact payload. That's the validity check that catches the genuinely expensive mistakes: a typo in the URL, a code built from the wrong link, an export that silently corrupted the pattern.
But a code can pass that check and still fail in the field, which is where a plain pass/fail validator stops being useful. Scanning depends on contrast, size, quiet zone, and error-correction headroom - none of which make a code "invalid". That's what the scannability grade measures, so you get both answers at once: the code is valid, and here's how much punishment it survives.
Testing a QR code on a screen or LCD
Codes shown on a display - digital signage, a TV, a kiosk, a phone held up at a counter - face hazards print doesn't. Overhead lights reflect off the glass, some LCD panels wash out when viewed off-axis, auto-brightness can dim the code at the worst moment, and a phone camera photographing a screen can pick up moire banding that confuses the read. Run the display at full brightness, angle it away from light sources, and keep the code big with clear space around it. The glare, angle, and low-light tests in the gauntlet above simulate these conditions, so you can check a code before it goes up on a screen rather than after.
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.