QR code scanner
Decode a QR code from an image or straight from your camera. Scanning happens in this tab — images and video frames never leave your device.
From an image
Drop an image here, or click to choose one
screenshot, photo of a print, downloaded code — PNG/JPEG/WebP
From your camera
Camera frames are decoded locally, frame by frame. No recording, no upload.
Decoded content
–Safety note: a QR code is a link from a stranger — check the domain above before opening it, and never enter passwords on a page a code took you to.
Frequently asked questions
Are my images uploaded when I scan?
No. Decoding runs in your browser with jsQR — the image (or camera frame) is drawn to a local canvas and never sent anywhere. That is why this scanner keeps working on a plane: after the page loads, no network is involved at all.
Why does the camera option not work?
Browsers only allow camera access on HTTPS pages, and only after you grant permission. If you denied it earlier, click the lock icon in the address bar and re-allow camera. On devices without a camera, use image upload — it decodes screenshots and photos just as well.
Is it safe to open a link from a scanned QR code?
Treat a QR code like a link in a stranger’s email: read the decoded text first (we always show it before any “open” button), check the domain is the one you expect, and be extra wary of codes stuck over other codes in public places. When in doubt, don’t open it.
Can I scan the codes I made here?
Yes — and you should. StaticQR codes are static, so what you decode is exactly what you encoded: the scanner doubles as a pre-print proofing step. Test from the actual screen or a draft print at final size.