QR Code Scanner - Decode QR Codes from Any Image Online

Scan and decode any QR code from a screenshot or saved image — free, instant, and 100% private. No upload, no sign-up. Works in your browser.

Upload a photo, get the link or text instantly

Drop in any screenshot or saved image containing a QR code and this QR code scanner reads it for you in seconds — no camera, no app, no sign-up required. The decoded URL, plain text, contact details, or Wi-Fi credentials appear right on screen, ready to copy or open.

Your image never leaves your device. Decoding happens entirely in your browser with JavaScript, so nothing is uploaded to any server. That makes this safer than most online QR readers, which silently send your file to their backend.

How to scan a QR code from an image

  1. Get the image. Take a screenshot, save a photo, or download any image that contains a QR code.
  2. Upload or drag it in. Click the upload area above — or drag the image file straight onto it.
  3. Read the result. The decoded text, link, or data appears immediately below the preview.
  4. Copy or act on it. Hit Copy to grab the result, or click any detected link to open it directly.

Worked example: decoding a QR code screenshot

Input: A screenshot saved as ticket-qr.png containing a QR code printed on an event ticket. The code encodes a URL.

Output after scanning:

https://events.example.com/checkin?token=A3F9-2KX7

You can then paste that URL into your browser, or copy it into another tool for further processing. If the QR code holds plain text or a vCard (contact card), the full text is shown exactly the same way.

How to decode a QR code in code

If you need to automate QR decoding in a script or app, here are the most common approaches.

Python — using the pyzbar library

from PIL import Image
from pyzbar.pyzbar import decode

img = Image.open('ticket-qr.png')
results = decode(img)

for r in results:
    print(r.data.decode('utf-8'))
# Output: https://events.example.com/checkin?token=A3F9-2KX7

Install with pip install pyzbar Pillow. On macOS you may also need brew install zbar.

JavaScript (browser) — using the jsQR library

import jsQR from 'jsqr';

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);

const code = jsQR(imageData.data, imageData.width, imageData.height);
if (code) {
  console.log('Decoded:', code.data);
  // Output: https://events.example.com/checkin?token=A3F9-2KX7
}

Install with npm install jsqr. The jsQR library is what powers many browser-based QR decoders, including this tool.

How it works under the hood

QR codes (Quick Response codes) store data in a 2-D grid of black and white squares. The scanner uses a JavaScript image-decoding library to locate the three square 'finder patterns' in the corners, correct for any skew or blur, then read the binary data and decode it using the ISO/IEC 18004 QR code standard.

Error-correction data built into every QR code means the scanner can recover the full content even if part of the image is damaged or obscured — up to 30% of the code can be missing and it will still decode correctly.

When this scanner is the right choice — and when it isn't

SituationUse this tool?
QR code in a screenshot or saved image file✅ Yes — ideal
QR code in a PDF or document screenshot✅ Yes — upload the screenshot
Blurry or very small QR code in a photo⚠️ Try it — error correction helps, but extreme blur may fail
Live camera scanning on your phone❌ Use your phone's built-in camera app instead
Batch-decoding hundreds of images automatically❌ Use a command-line tool like zbarimg or a Python script

Works on screenshots and saved images — not just camera feeds

Most people only think of QR scanners as camera apps. This tool fills a different gap: you already have the image on your computer — maybe from a PDF, a forwarded screenshot, or a web page — and you just need to read what's inside the code.

Common uses include checking a ticket QR code before an event, reading Wi-Fi credentials embedded in a QR sticker, and verifying that a QR code you just generated actually encodes the right URL. For generating new codes, pair this scanner with a QR code generator to create and immediately verify in the same workflow.

If the decoded content comes back as JSON — for example, some API tokens or structured data payloads are stored in QR codes — you can paste it straight into the JSON Beautifier to make it readable, the JSON Validator to check it for errors, or the JSON Viewer to explore its structure interactively. The JSON Pretty Print tool is handy for a quick clean-up, and if you need YAML output, JSON to YAML Converter handles that in one click.

Drop your image into the scanner above and get the result in under a second.

Frequently asked questions

Is my image uploaded to a server when I scan it?+
No. The entire decoding process runs in your browser using JavaScript. Your image is never sent to any server, stored, or logged anywhere. You can even disconnect from the internet after the page loads and it will still work.
What image formats does this QR code scanner support?+
It accepts the most common image formats: JPEG, PNG, GIF, WebP, and BMP. If your image is in a PDF, take a screenshot of the relevant page first and upload that.
My QR code is not being detected — what should I try?+
First, make sure the entire QR code is visible in the image with a clear white border around it. If the image is very small, try zooming in and taking a new screenshot at a higher resolution. Extreme blur or heavy distortion can defeat decoding even with error correction.
Can I scan a QR code from a screenshot?+
Yes — that's one of the main uses. Take a screenshot on your computer (Cmd+Shift+4 on Mac, Win+Shift+S on Windows), save it, then upload it here. The decoder works from any static image file, not just photos taken with a camera.
Is this QR code reader free? Do I need to create an account?+
Completely free, and no account or sign-up is needed. Open the page, upload an image, and you're done.
What types of data can a QR code contain?+
A QR code can hold plain text, a URL, an email address, a phone number, a Wi-Fi network and password (WPA format), a vCard contact, a calendar event, or raw binary data. The scanner shows exactly what's encoded — whatever type it is.
How is a QR code scanner different from a QR code reader?+
They mean the same thing. 'QR code scanner', 'QR code reader', and 'QR decoder' are all used interchangeably for a tool that reads the content stored inside a QR code image. The word 'scanner' originally referred to camera-based apps, but both terms now cover image-based decoding too.
Can this decode other barcode types like barcodes or Data Matrix codes?+
This tool is specifically tuned for QR codes (ISO/IEC 18004). It will not reliably decode traditional 1-D barcodes (like UPC or EAN) or Data Matrix codes. Use a dedicated barcode scanner tool for those formats.