QR Code & Barcode Scanner
Read a QR code or barcode from a photo or your live camera, right in your browser. The decoded value is shown safely as plain text with a copy button — it is never opened or visited automatically. Free, private, with no sign-up.
Decode any QR code or barcode, safely
Sometimes you have a code but not a phone handy, or you want to check exactly what a QR code contains before trusting it. This scanner reads QR codes and common barcodes straight from a photo you upload or from your device's live camera, and decodes them entirely on your own machine. Crucially, it shows you the result rather than acting on it: the decoded value appears as plain text you can read and copy, and if it is a link you get a clearly labelled button to open it yourself — nothing is ever fetched or navigated to behind your back.
That makes it genuinely useful for everyday checks: reading a product barcode, pulling the text out of a QR code on a poster or packet, recovering the URL behind a code so you can inspect it first, or simply decoding a code on a screen in front of you. Because all the work is local, your image and camera feed never leave your browser.
How to scan a QR code or barcode
- Choose a source: upload a photo containing the code, or tap Use camera to scan live.
- If you use the camera, allow permission when your browser asks, then point it at the code until it is detected.
- Read the decoded value, shown as plain text with the detected format, and use Copy to copy it.
- If the value is a web link, an Open-link button appears — open it yourself only if you trust the source. Nothing opens automatically.
Why the decoded value is shown, not followed
A QR code can encode anything, including a link to a malicious site, so treating scanned content as automatically safe is a real risk. This tool is built the careful way round: whatever it decodes is displayed inert, as escaped plain text, with no automatic redirect and no background request. When the content is a normal web address you are offered a manual button that opens it in a new tab only when you click it; anything that is not a plain http or https link is shown as text with no clickable action at all. The decision to act always stays with you.
Getting a clean read
If a scan does not land first time, the image is almost always the reason. For photos, get close and square-on so the code fills the frame, keep it in focus and well lit, and avoid glare. For the live camera, hold steady and let the code sit centred for a moment. Codes with strong dark-on-light contrast and a clear quiet margin around them read fastest; faint, glossy, or skewed codes are the usual culprits when nothing is found.
Frequently asked questions
How does scanning from my camera work?
When you tap "Use camera" your browser asks permission to use the camera, then shows a live preview. Point it at a QR code or barcode and the page decodes it on your own device. If permission is denied or no camera is available, you can still scan by uploading a photo instead. Camera scanning needs a secure (https) connection, which this site uses.
Is the decoded link opened or visited automatically?
No, and that is deliberate. A scanned code is untrusted content — it could contain a malicious link — so the tool only ever shows you the decoded value as plain text. If it is a web address you get a clearly labelled button to open it yourself in a new tab, but nothing is fetched, redirected, or visited unless you choose to click. You stay in control of what happens next.
What kinds of codes can it read?
Both QR codes and common linear barcodes — including EAN, UPC, Code 128, Code 39, and ITF — as well as 2D codes such as Data Matrix and PDF417. Whatever it finds, it tells you the format it detected alongside the decoded value.
Why can it not read my image?
Usually the code is too small, blurry, low-contrast, or at too steep an angle in the photo. Try a sharper, closer, straight-on shot with the code well lit and filling more of the frame. A clean dark-on-light code with a clear margin around it reads far more reliably than one over a busy or tinted background.
Is my image or camera feed uploaded anywhere?
No. All decoding happens locally in your browser using an in-page WebAssembly reader. The photo you choose and the frames from your camera are processed on your device and never sent to a server, so even a private code stays with you.