Methodology
A transparent look at how our scanning, generation and testing actually work.
Last updated June 1, 2026
We believe a tool you trust with your data should explain how it works. Here is exactly how ScannerQR decodes, generates and evaluates QR codes and barcodes.
Decoding
Our scanners are built on the ZXing ("Zebra Crossing") decoding engine, a mature open-source library used across the industry. It supports QR codes, DataMatrix, PDF417, Aztec and the full family of 1D barcodes such as EAN, UPC, Code 128 and Code 39. Decoding runs in your browser via WebAssembly and JavaScript — the image is analyzed on-device and the result is shown instantly.
- From an image or screenshot: the file is read into a canvas locally and passed to the decoder. It is never uploaded.
- From your camera: frames are sampled from the live video stream and decoded in real time. No video is recorded.
- From a PDF: pages are rendered to images in the browser and then scanned for codes.
Generation
Our QR generator uses established open-source rendering libraries to produce standards-compliant QR codes. You control the content type, colors, shapes, logo and error-correction level, and can export to PNG, SVG, WEBP or print-ready PDF — all rendered locally.
Error correction and scanability
QR codes include error correction that lets them be read even when partially damaged or obscured by a logo. We expose four levels (L, M, Q, H) and automatically suggest a higher level when you add a logo or encode a longer payload. Our scanability indicator weighs contrast, quiet-zone margins, content length and error correction to flag codes that may be hard to scan before you download them.
Safety analysis
The Safe QR Scanner inspects a decoded link before you open it, checking for common red flags such as misleading domains, URL shorteners hiding the true destination, and suspicious patterns. This analysis is heuristic and runs locally; it is a helpful signal, not a guarantee, so always use judgment.
Privacy by architecture
Because every step above happens in your browser, privacy is not a policy promise but a property of the design. See our privacy policy for the full details.