Scan a QR code from an image

Add a photo or screenshot, or use your camera. See what the code holds before anything is opened. Runs on your device.

How it works

  1. Add a photo or screenshot, or press Use camera
  2. Press Scan
  3. Read the text and the details, then copy it or open the link yourself

How a code is read

To scan a QR code from an image, add the picture here and press Scan: the page finds the code, shows the text it holds and never opens a link by itself. It uses the browser's own barcode detector where the browser has one, and the open-source jsQR decoder when it does not or when the detector finds nothing. A picture is scanned up to three times: at most 2400 pixels on the long side, then at 1200, then at 600. A 4000 by 3000 photo is read at 2400 by 1800, then 1200 by 900, then 600 by 450, because a smaller copy sometimes reads when a large one does not. jsQR also tries the picture with its colours inverted, so a light code on a dark background can be read. Only the first code found is read. If an image holds several QR codes, the others are not listed.

What the page shows for each kind of code

The raw text is always shown in a box you can copy from. Under it, the page splits known kinds into fields. A web address shows its domain, whether it starts with https or http, the path and the number of query parameters. A Wi-Fi code such as WIFI:T:WPA;S:Cafe Net;P:blue42;; shows the network name Cafe Net, the security WPA or WPA2 and the password blue42. A contact card in vCard or MECARD form shows name, phone, email, organisation and address. A mailto: code shows the address, subject and message. The page also reads phone numbers, text messages, locations and UPI payment requests. Anything else is shown as plain text. If the code is not one of these, you still get the text; nothing is guessed.

Links are never opened for you

A QR code can point to any website, and a printed code is easy to stick over another. So the address is shown as text first, with its domain on its own line, and opening it is a separate click on Open link. Next to the button the page reminds you to check the domain. It adds a warning when the link uses http instead of https, when it has a name before an @ sign (the real site is the part after the @), when the domain contains non-English letters that can imitate a known site, or when the link points to a number instead of a name. Only http and https addresses get an Open link button. A code that holds javascript:, data:, vbscript:, file: or blob: is shown as text and never offered as a link. The page cannot tell you whether a site is safe; it shows you what the code says.

Camera mode

Press Use camera, then Start camera. Your browser asks for permission, and the camera only works on https pages. On a phone the rear camera is asked for first. The page checks a small copy of each video frame, about 800 pixels on the long side and then 400, a few times a second, and stops the camera as soon as a code is read. Frames are drawn on a canvas in this tab and dropped; nothing is recorded, saved or uploaded. If permission is blocked, the message says how to allow it, and you can go back and scan a saved image instead.

Limits and where the work happens

You can scan up to 20 images at a time, one after another. A code that is blurry, very small in the frame, glared over or cut at the edge may not read; the message asks for a sharper picture with the whole code in view and a plain border around it. If the code fills only a corner of a large photo, crop to it first. The decoding happens in your browser. The page counts visits with Google Analytics, using rough groups such as file size ranges, never a file name, an image or what a code holds. No settings are saved. A download gives you the decoded text as a .txt file.

Frequently asked questions

How do I scan a QR code from an image or a screenshot?

Add the file, or paste a screenshot with Ctrl+V (Cmd+V on a Mac), then press Scan. JPEG, PNG and WebP work, up to 20 at a time. The page shows the decoded text and the details of the code, such as the domain of a link or the network name of a Wi-Fi code.

Why does it say no QR code was found?

The code is probably too small, blurry, glared over, cut off or missing its plain border. Crop the picture to the code, or take a new photo with the whole code in view. Only the first code in an image is read. A screenshot of a code on a dark background is read too, because inverted colours are tried.

Is it safe to open the link in a QR code?

Look at the domain first. The page shows it on its own line, warns about http, about a name before an @ sign and about look-alike letters, and only opens a link when you click Open link. It cannot judge a site. Do not enter passwords or payment details on a page you reached from a code you do not trust.

Can I see the password in a Wi-Fi QR code?

Yes. A Wi-Fi code stores the network name, the security type and the password as text, for example WIFI:T:WPA;S:Cafe Net;P:blue42;;. The page lists each part so you can copy the password. Anyone who can scan the code can read it, which is how phones join the network.

Does the camera scanner work on my computer or phone?

It works in browsers that allow the camera on an https page, on a phone or a computer with a webcam. You are asked for permission when you press Start camera. The rear camera is requested first. If the camera is blocked or in use by another app, the message says what to change.

Are my images uploaded?

No. The image is processed in your browser and not uploaded. Camera frames are checked in the same tab and dropped, and nothing about the code is stored or sent. Only a download of the text happens on your command, as a file on your device.