What Happens Between the Camera and the Text
Pointing a camera at a code looks instantaneous, but four distinct things have to succeed in order, and knowing which one failed is how you fix a code that will not read.
- Locate. The decoder finds the code in the frame. QR codes carry three large squares in their corners for exactly this purpose; barcodes are found by looking for the alternating light-dark pattern.
- Normalise. The image is straightened and rescaled, correcting for the angle you are holding the camera at.
- Sample. Each module, the individual light or dark cell, is read as a bit.
- Correct and decode. Error correction repairs whatever was misread, and the remaining bits are turned back into text.
Most failures happen at step one or three: the code is too small in frame, or the contrast is too low for the sampler to distinguish modules confidently.
Why a Damaged QR Code Still Works
QR codes carry Reed-Solomon error correction, which is the same family of mathematics used on compact discs. Redundant data is woven throughout the code, so a proportion of it can be destroyed and the original still recovered exactly.
| Level | Recoverable damage | When it is used |
|---|---|---|
| L (Low) | About 7% | Clean digital display, maximum data in minimum space. |
| M (Medium) | About 15% | The usual default for print. |
| Q (Quartile) | About 25% | Industrial labels, surfaces that get dirty. |
| H (High) | About 30% | Outdoor use, and codes with a logo placed over the centre. |
That last row explains a thing people find surprising: a QR code with a company logo covering part of it is not a clever trick. It is level H error correction deliberately sacrificing capacity so that the logo can obliterate up to 30% of the modules without breaking the code.
What This Reader Handles
Alongside QR codes, it decodes the common linear symbologies: Code 128, EAN-13, EAN-8, UPC-A, Code 39, Code 93, ITF, Codabar and DataBar. The format is reported with the decoded value, which is often the useful part, knowing that a number came from an EAN-13 rather than a Code 128 tells you it is a retail product code rather than an internal reference.
Both camera scanning and image upload work. Uploading a screenshot or photo is frequently the more reliable route for a code that is small, low-contrast, or already on the screen you are looking at.
Reading a Code Before You Trust It
A QR code is opaque to a human being, and that is precisely its security weakness. You cannot tell by looking whether it points to a legitimate site or a convincing fake, which has made physical code-swapping a practical form of attack, a sticker over the code on a parking meter, a restaurant table or a public poster.
Decoding a code before acting on it is the whole defence, and it is why a reader that shows you the payload as text is more useful than a phone camera that opens the link immediately. Read the domain, not the display text. Codes that encode a shortened URL hide their true destination behind a redirect, so treat those with more caution than a code showing the full address.
Everything happens in your browser. Camera frames are processed locally and never uploaded, and neither are images you drop in. Granting camera access is a permission to this page in your browser rather than to any server, and revoking it in your browser settings takes effect immediately.