⭐ 0

QR Code Scanner

Decode a QR code from a photo or the camera with jsQR, and copy the text it contains.

🔒 Processed entirely in your browser — nothing you enter here is ever uploaded.

The result appears on this page after you run the tool. Nothing you enter is uploaded.

📷

Or Upload QR Image File

Processing... 0%
Reading the image
Drawing the pixels
Decoding the QR symbol
Done

Result

About this tool

There are two ways in. Camera Scan calls getUserMedia with facingMode environment, which asks for the rear camera when the browser can offer one, then samples a frame every 200 milliseconds. Each frame is drawn to a canvas at the video’s pixel size and passed to jsQR. The first successful payload is written into the result box, the camera track is stopped, and a phone that supports navigator.vibrate buzzes for 100 milliseconds. If permission is refused, the page reports that camera access was denied.

The file path is the form button. Drop or choose an image whose type starts with image/. The bytes are read as a data URL, drawn at the image’s own width and height, and decoded with the same jsQR call. A payload of INV-1042 comes back as the string INV-1042. If the picture has no QR symbol, the error says no QR pattern was discovered. jsQR is loaded the first time you start the camera or decode a file, not when the page first opens.

The result is text. A URL is not opened for you; copy it and decide where it goes. A UPC or other barcode in the same frame is ignored, because the decoder only looks for QR. The photo and the camera frames stay in the page. Nothing in this tool uploads them.

Example. A photo whose QR payload is INV-1042 decodes to the string INV-1042, and that string is what the copy button copies.

Limit. jsQR recognizes QR symbols only, so a UPC or other barcode in the frame is ignored. A successful camera read stops the camera. The page does not open the decoded URL by itself.

How do I scan a QR code online without an app?

Use Camera Scan and allow the camera. The page asks for the rear camera when the browser offers one, grabs a frame every 200 ms, and runs jsQR on those pixels. The first payload is written into the result box, the camera stops, and a supporting phone vibrates for 100 ms.

Can I scan a QR code from a screenshot?

Drop a PNG, JPEG, or other image the browser can draw. The file is painted onto a canvas at its own pixel size and decoded there. If jsQR finds no symbol, the page reports that no QR pattern was found. The image is not uploaded.

Will it read a barcode or follow the link?

The decoder is jsQR, which looks for QR symbols. A UPC barcode in the same photo is ignored. The result is the raw text or URL string. Nothing on the page navigates to that URL until you copy it and open it yourself.