ToolNimba

๐Ÿ”ณ QR Code Decoder: Read a QR Code From an Image

Shihab Mia By Shihab Mia ยท Updated 2026-07-26

The image is decoded entirely in your browser. Nothing is uploaded to any server.

Choose an image file to decode its QR code.

This tool reads a QR code from an image you upload and shows you the text or URL hidden inside it, entirely in your browser. Nothing is ever uploaded to a server. Choose an image file, the code is detected on your own device using your browser's built-in barcode reader, and the decoded value appears immediately with a one-click copy and, for links, an "Open link" button.

What is the QR Code Decoder?

A QR code is a two-dimensional barcode: instead of a single row of bars like a traditional barcode, it packs data into a square grid of black and white modules, which lets it hold far more information (URLs, plain text, Wi-Fi credentials, contact cards) in the same physical space. QR codes also carry built-in error correction, meaning a portion of the code can be smudged, scratched, or partially covered by a logo and the code still scans correctly, because the missing data is mathematically reconstructed from redundant information stored elsewhere in the grid.

This decoder works using the BarcodeDetector API, a feature built directly into some modern browsers. When you choose an image, the tool turns it into a bitmap in memory, hands that bitmap to the browser's native detector, and asks it to look specifically for a QR code pattern. If one is found, the detector returns the raw decoded value directly to the page. No image data is sent anywhere, no external decoding service is called, and no library is downloading anything from the internet to do the work.

The honest catch is browser support. BarcodeDetector is well supported in Chromium-based browsers, meaning Google Chrome and Microsoft Edge on desktop and Android generally work fine. Safari and Firefox, however, have not shipped this API as of this writing, so this tool will not work in those browsers. Rather than fail silently or pretend a code was found, this page checks for the API up front and tells you plainly if your browser cannot decode QR codes locally, with a suggestion to try Chrome or Edge instead.

Because everything runs on-device through a native browser API, there is no upload step, no waiting on a server, and no privacy trade-off. The moment the browser's detector returns a result, it is displayed on the page and the image itself never leaves your machine.

When to use it

  • Reading a QR code from a screenshot when you cannot point a phone camera at the original poster or flyer.
  • Checking exactly where a QR code link leads before opening it, by reading the raw URL first.
  • Recovering text, Wi-Fi details, or contact info encoded in a QR code image someone emailed or messaged you.
  • Verifying that a QR code you generated actually encodes the value you intended, before printing it.
  • Decoding a QR code from a saved photo when the physical code is no longer available to rescan.

How to use the QR Code Decoder

  1. Click "Choose an image with a QR code" and select an image file (PNG, JPG, or similar) from your device.
  2. Wait a moment while the browser reads the image and searches it for a QR code pattern.
  3. The decoded text or URL appears in the result box once a code is found.
  4. Press Copy to copy the decoded text, or press Open link if the result is a web address.
  5. If nothing is found, try a clearer, higher-resolution, or better-lit image of the same code.

Formula & method

Detection method: the uploaded image file is converted to an ImageBitmap in browser memory, then passed to the native BarcodeDetector API configured for the qr_code format (new BarcodeDetector({ formats: ["qr_code"] })). The detector's detect() method scans the bitmap and returns the raw decoded value of the first QR code it locates. No external decoding service, server, or third-party library is used; everything runs through the browser's own built-in implementation.
Decode a QR Code in Your BrowserYour imageBrowserBarcodeDetector(on-device)Decodedtextโœ…Everything happens on your device. Nothing is uploaded.

Worked examples

You have a screenshot of a QR code from a poster and want to know where it links without scanning it with your phone.

  1. Open this page in Chrome or Edge.
  2. Click the file input and select the screenshot image.
  3. The tool reads the image and detects the QR code automatically.
  4. The decoded value appears, for example "https://example.com/event".

Result: The raw URL is shown in the result box, plus an Open link button since it starts with http.

You try to use the decoder in a browser that does not support BarcodeDetector, such as current Safari.

  1. Open this page in Safari.
  2. The tool checks for the BarcodeDetector API on page load.
  3. Since the API is missing, the tool immediately shows an honest unsupported-browser message instead of attempting to decode anything.

Result: A clear message explains that in-browser QR decoding is not supported in this browser yet and suggests switching to Chrome or Edge.

Browser support for the native BarcodeDetector API used by this tool (general guidance, check your exact browser version for certainty)

BrowserTypical support
Google Chrome (desktop and Android)Supported
Microsoft Edge (desktop)Supported
Safari (macOS and iOS)Not supported as of this writing
Firefox (desktop and Android)Not supported as of this writing

QR code error-correction levels (qualitative, higher levels trade data capacity for more damage tolerance)

LevelApproximate damage tolerance
L (Low)Lowest tolerance, highest data capacity
M (Medium)Moderate tolerance, the common default
Q (Quartile)Higher tolerance, reduced capacity
H (High)Highest tolerance, lowest data capacity

Common mistakes to avoid

  • Assuming this works in every browser. The decoder relies on a native browser feature (BarcodeDetector) that Safari and Firefox do not currently support. If nothing happens or you see an unsupported-browser message, the fix is to switch browsers, not to retry the same image.
  • Uploading a blurry or very low-resolution image. QR detection needs enough contrast and sharp enough edges to distinguish individual modules. A heavily compressed screenshot or a photo taken from far away can fail to decode even though a human can visually make out the pattern.
  • Cropping too tightly around the QR code. QR codes need a quiet zone, a small margin of blank space around the pattern, to be detected reliably. An image cropped right to the edge of the black modules can cause detection to fail.
  • Confusing this with a live camera scanner. This tool only reads QR codes from an uploaded image file. It does not access your camera or scan in real time; if you need a live scan, use your phone's built-in camera QR scanner instead.

Glossary

QR code
A two-dimensional barcode that stores data in a square grid of black and white modules, capable of holding far more information than a traditional linear barcode.
BarcodeDetector API
A native browser API that detects and decodes barcodes, including QR codes, directly on the device without any external service.
Error correction
Redundant data built into a QR code that allows it to be decoded correctly even if part of the code is damaged, dirty, or obscured.
Raw value
The exact text or URL string encoded inside a QR code, returned as-is by the decoder without any modification.
Quiet zone
The blank margin of space surrounding a QR code that helps a scanner or detector reliably locate its edges.
ImageBitmap
An in-memory, decoded representation of an image used by browsers for fast, efficient image processing tasks like barcode detection.

Frequently asked questions

Does this QR code decoder work in every browser?

No, and this tool is upfront about that. It relies on the browser's built-in BarcodeDetector API, which Chrome and Edge support but Safari and Firefox currently do not. If your browser lacks support, the tool tells you clearly rather than pretending to work.

Is my image uploaded anywhere?

No. The image is read and decoded entirely on your own device using your browser's native barcode detector. It is never sent to a server, and no external decoding service is involved.

What if no QR code is found in my image?

You will see a "No QR code found in that image" message. Try a clearer, higher-resolution, or better-lit image, and make sure the QR code is not cropped too tightly or too small in the frame.

Can this tool scan a QR code using my camera?

No. This tool only decodes QR codes from an image file you upload; it does not access your webcam or phone camera for live scanning.

What kinds of data can a decoded QR code contain?

Whatever the QR code was originally encoded with, commonly a URL or plain text, but also things like Wi-Fi credentials or contact card data. This tool shows you the raw decoded value exactly as stored.

Why does the result show an "Open link" button sometimes but not always?

The Open link button only appears when the decoded value starts with http:// or https://, since that indicates it is a web address. For plain text or other data types, only the Copy button is shown.