1001Ferramentas
📷Utilities

QR Code Reader

Read QR codes from device camera or uploaded image. 100% in your browser (jsQR).

How does it work?

Reading is handled by the jsQR library, loaded via CDN. All the decoding happens in the browser.

You can point the camera (it asks for permission and needs HTTPS) or upload an image. Either way, nothing is sent to servers.

It handles QR codes in general, whether URLs, Pix, Wi-Fi, vCard or plain text.

Read QR Codes by camera or image

The reader that comes built into the phone doesn't always cope, and on a computer it gets fiddlier still. So this tool reads QR Codes two ways: you point the device's camera at the code, or you upload an image that already has a QR in it.

Once the code is recognised, the contents land on screen, whether a link, some text, contact details or Wi-Fi data. It comes in handy when the QR sits in an image you saved, when you want to know what it holds before opening it, or when you're at the computer and your phone is out of reach.

None of this leaves your device. The reading runs entirely in the browser, with the jsQR library: neither the image nor the camera reaches any server. Practical and private.

Frequently asked questions

Does the image I upload or the camera feed reach a server?
Neither one does. An uploaded image is painted onto a hidden canvas and its pixels are handed straight to the jsQR library inside the page; the camera feed takes the same route, frame by frame, five times per second. No file is uploaded anywhere and the decoded content is never logged. The page's only outbound request is the download of the jsQR script itself from a CDN — it arrives once and carries none of your data with it.
Why do I get No QR Code found when the code is clearly visible?
That single message covers two very different situations, which trips people up. It appears when jsQR genuinely failed to spot a pattern in the frame or the image, and it appears just as well when camera access failed — permission denied, page opened without HTTPS, or no camera on the device. If the camera button produced no video and the message popped up instantly, the culprit is permission, not decoding. For genuine decode failures the usual suspects are soft focus, a code cropped at the edges and weak contrast.
Can it read ordinary barcodes, and is there a size limit on the image?
QR Codes only. Linear barcodes such as EAN and Code 128, plus DataMatrix, PDF417 and Aztec, all fall outside its reach, since jsQR decodes QR and nothing else. The page imposes no file-size cap, but the whole image gets drawn at full resolution into a canvas, so a forty-megapixel photo will make the browser work hard. Only the first QR found is returned, even when the photo holds several. And if the chosen file cannot be decoded as an image, the page just sits there showing nothing.

Related Tools