Choose language

QR Code Reader

Decode QR codes from an uploaded image or your device camera, detect the format, and copy the result. Everything runs locally in your browser.

Mehmet Demiray Published Updated
Share

Two Ways To Scan A Code

The reader gives you two paths to the same result. Upload mode takes any picture that contains a code: a screenshot, a saved photo, a scan of a printed page, or product packaging. Drag the file in or pick it from your device, and the decoder looks across the whole image for every code it can find. Camera mode points your device at a code in the real world and decodes it as soon as the frame is sharp enough. Upload works best when the code already lives on your screen or in your photo library, since there is nothing to physically point at. The camera shines when you are holding the printed code in front of you and want an instant read. Both modes use the same ZXing-based engine, so a code that decodes from a photo will decode just as well live. You can switch between them at any time without losing your place, picking whichever route matches where the code happens to be.

What Lives Inside A QR Code

A QR code is just a container for text, and that text follows patterns the reader recognizes. The most common payload is a URL, shown here as a clickable link so you can open it without retyping. Plain text comes through exactly as written, useful for notes, serial numbers, and short messages. Structured payloads carry more meaning: WiFi credentials list the network name, security type, and password; a vCard holds contact details you can save in one tap; email, SMS, and phone payloads prefill the matching app. Calendar events bring a title, date, and location. The reader detects which type it is decoding and presents it accordingly, so a contact looks like a contact and a network looks like a network rather than a wall of raw characters. Seeing the structure makes the result easier to trust and act on. If you want to build these payloads yourself, the QR Code Generator creates every type, and the Barcode Reader handles the linear codes on retail packaging.

Troubleshooting A Failed Scan

When a code refuses to decode, the image is almost always the cause rather than the code itself. Blur is the top offender, so hold the camera steady or pick a sharper photo. Glare from a screen or glossy paper can wash out the pattern; tilt the surface slightly to move the reflection off the code. Low contrast, such as a faint print or a dark code on a dark background, leaves the decoder little to lock onto, so brighten the shot if you can. Cropping matters more than people expect: every QR code needs a clear margin around it, called the quiet zone, and cutting into it can break the read. Make sure the full code plus a little white space is inside the frame. If the code is small in a large photo, crop closer so it fills more of the image. Working through these one at a time usually turns a stubborn code into a clean result without any special equipment.

Codes Beyond The Square QR

QR is the most familiar pattern, but it is not the only 2D code the reader handles. Data Matrix appears on small parts, electronics, and labels where space is tight, packing data into a compact square. Aztec codes show up on transit tickets and boarding passes, recognizable by the bullseye at their center. PDF417 is the tall, striped block found on driver licenses, shipping documents, and event tickets, storing more data than a single line barcode can. The reader detects which format it is looking at and decodes it the same way it handles a QR code, so you do not need to choose a mode in advance. This matters when a document mixes several code types, since one upload can surface all of them at once. For the strictly linear retail and logistics symbologies such as EAN and UPC, the Barcode Reader is the better fit, while this tool focuses on the 2D family.

Why Decoding Stays Private

Reading a code does not require sending anything to a server. The decoding happens in JavaScript inside your browser, so the image you upload or the camera frame you capture is processed on your own device and never leaves it. That design has practical benefits beyond privacy. There is no upload wait, which is why a read can feel instant even on a large photo. It works on a flaky connection, since the heavy lifting is local. And sensitive content stays sensitive: a QR code might hold a WiFi password, a private link, or contact details you would rather not hand to a third party. Because the camera stream is read frame by frame and discarded, nothing is recorded. The one requirement is that camera access needs a secure connection and your permission, a browser rule that protects you rather than the tool. Once you grant it, every scan runs entirely on your hardware, with the decoded text appearing only on your screen.

The ones we answer the most.

Which code formats can the reader detect?

It detects QR codes plus the wider 2D family, including Data Matrix, Aztec, and PDF417. The decoder identifies the format automatically, so you do not need to pick one before scanning. For one-dimensional retail and shipping barcodes such as EAN, UPC, and Code 128, use the Barcode Reader instead, since those use a different symbology.

How do I scan a QR code from a screenshot?

Switch to upload mode and drag the screenshot in, or pick it from your device. The reader looks across the whole image, finds the code, and shows the decoded content. This is the easiest way to read a code that is already on your screen, since there is nothing to point a camera at. If the code is small inside a large screenshot, cropping closer to it can improve the read.

Why does the camera scan need permission?

Browsers require both a secure connection and your explicit permission before any site can access your camera. That rule protects you, and the reader cannot turn the camera on until you allow it. Once granted, the camera stream is read frame by frame entirely on your device and is never recorded or uploaded.

Can it read a partially damaged code?

Often, yes. QR codes include error correction that lets them survive a surprising amount of damage, smudging, or missing area before they become unreadable. A code with a torn corner or a small stain frequently still decodes. The limit depends on how much of the pattern is intact, so a heavily destroyed code may not recover. Getting a sharp, well-lit image of whatever remains gives the decoder its best chance.

Can it find more than one code in a single image?

Yes. The reader scans the entire image rather than stopping at the first hit, so a photo or document containing several codes returns all of them in a list. This is handy for packaging or paperwork that prints multiple codes together. Each result shows its decoded content and detected type separately.

Do I need to install an app to use it?

No. The reader runs in your browser on both desktop and mobile, so there is nothing to download. Upload mode works anywhere, and camera mode works once you grant permission on a secure connection. If you also want to create codes rather than read them, the QR Code Generator builds QR codes for URLs, WiFi, contacts, and more.