Decode a QR code from any image.
Got a screenshot of a QR code? A photo of one? Drop the image here and we'll decode what's inside — a WiFi password, a contact card, a link, plain text. The image never leaves your browser, and we'll tell you exactly what's encoded before you click anything.
This QR code is for a WiFi network.
This QR code is a contact card.
This QR code is a pre-composed email.
This QR code is a pre-composed text message.
Show raw QR data
-
Image never leaves your device
The image is decoded entirely in your browser. No upload, no log, no third-party service sees your photo or what it encodes. Open DevTools' Network tab while you decode — you'll see the decoder library load once, then nothing.
-
You see the result before opening it
Many QR codes encode URLs that lead to malicious sites. We show you the full URL — and any other QR contents — before you click anything. No auto-redirects, no "opening in app" prompts. You decide what to do with the decoded data.
-
Structured + raw views
We identify common QR types (WiFi, contact card, link, etc.) and parse them into clean fields you can copy individually. There's also a raw view always available so you can see exactly what the QR encodes, character for character.
How it works
- 1
Drop an image of the QR code
Drag the file onto the box above, or click to browse. A screenshot or a photo both work — the decoder handles partially angled, partially shadowed, and somewhat distorted QR codes.
- 2
We decode it locally
Decoding takes a fraction of a second on any modern device. If the image is unclear or doesn't contain a QR code we can read, you'll get a clear "no QR found" message rather than a silent failure.
- 3
Read or copy the result
For known QR types — WiFi, contact, link, email, phone — each field gets a copy button so you can grab just the part you need. The full raw decoded text is always visible too.
Frequently asked questions
What image formats work?
JPG, PNG, WebP, and GIF. A clean screenshot of a QR code is ideal. A photo also works as long as the QR code is reasonably in focus and the full code is visible (the corner markers can't be cut off).
The decoder says "no QR found" but there's clearly one in my image. Why?
A few common reasons: the QR is too small in the image (try cropping closer to it), the image is blurry, the QR is at a steep angle, the corner markers are partly cropped off, or the contrast is too low. Try a cleaner shot — phones generally do a better job scanning QRs in real time than decoders do from photos, because the phone can adjust focus.
Will you decode a malicious QR code safely?
Decoding is always safe — we just read the data, nothing happens automatically. That's the whole point: many QR codes encode URLs that lead to phishing pages or worse, and we show you the URL before any action so you can decide whether to visit it. No auto-redirects.
Can you decode other barcode types? (UPC, EAN, Code 128, etc.)
Not yet — this tool decodes QR codes specifically. The 1D barcode formats (UPC, EAN, Code 128) use a different decoder and might come as a separate tool if there's demand. Our decoder will tell you if the image has something barcode-like but isn't a QR.
What about animated GIFs or videos of QR codes?
Animated GIFs work — we decode the first frame. Video files aren't supported directly; if you have a video clip showing a QR code, screenshot the frame where the QR is clearest and decode the screenshot.
Can I scan a QR code with my camera in real time?
Not currently — this tool decodes from already-captured images. Real-time camera scanning is an addition we can build if there's demand. For most phones, the built-in Camera app already does this faster and more conveniently than a website could.