FileToolsHub logo

QR Decoder

Decode a QR code from an image and copy the payload — entirely in your browser.

The long side is drawn at most 1200 pixels before jsQR runs.

An image with no detectable code → No QR code found — try a clearer, well-lit crop

Processing: runs in your browser, nothing uploaded

✓ Free to use✓ No sign-up needed✓ Nothing to install

About QR Decoder

QR Decoder reads one image and prints the text inside the code. If jsQR finds nothing, the message is No QR code found — try a clearer, well-lit crop.

Scale, then jsQR

A file that is not an image shows Upload an image containing a QR code. A file the browser cannot draw shows Failed to read image. After it loads, the long side is limited to 1200 pixels. A 2400-pixel-wide photo is drawn at half size. jsQR then scans that bitmap. A hit shows the payload under the label Decoded content. The Copy button writes that text to the clipboard and the label switches to Copied for a short moment. There is no camera shutter on this page. You drop a picture you already have. A screenshot of a screen is a normal input.

What a miss looks like

No QR code found — try a clearer, well-lit crop. That sentence is the whole error when the bitmap has no detectable code. A blurry photo, a code that is a small corner of a large scene, or a code that was cropped in half can miss. Crop tighter and try again. The page does not guess a partial payload. It does not list several codes from one picture. The first decode result replaces the previous one. A barcode that is not a QR code is the wrong picture for this scanner. A second drop clears the previous payload before the new scan finishes. There is no history list of earlier pictures on this page. A successful decode replaces the miss sentence, and a later miss replaces the payload.

The payload is text, not a visit

A URL in the result is not opened. A Wi-Fi string is not joined. You copy it. WIFI: payloads from WiFi QR Generator are ordinary text here. The decoder does not check that the network exists. If the payload has a line break, the preformatted box keeps it. There is no edit box that writes a new code. Building a code is the generator page. The Copy control is the only action on a successful decode. It does not download a new image. The result box is a pre element, so spaces at the start of a line stay visible. jsQR returns the first code it accepts, and this panel shows that string only.

The image stays in the tab

The picture is decoded in this browser. It is not uploaded. A preview of the file you dropped stays on the page until you drop another. Clear the tab when the payload is a password or a private link. The canvas step can also report Canvas unavailable if the browser cannot allocate the drawing surface. A 3000 by 3000 photo is drawn at 1200 on the long side before the scan, so a tiny code in the corner of that photo can disappear in the scale-down. Crop to the code and drop that crop. The preview you see is the file you dropped, not the scaled bitmap jsQR used.

How to use

  1. 1

    Drop one image of a QR code.

  2. 2

    Read Decoded content, or the no-code message.

  3. 3

    Press Copy if you need the payload on the clipboard.

Privacy

The picture is decoded in this browser and is not uploaded.

Frequently asked questions

What if the picture has no code?

No QR code found — try a clearer, well-lit crop.

What if the file is not an image?

Upload an image containing a QR code.

How large a photo is scanned?

The long side is drawn at most 1200 pixels, then jsQR reads that bitmap.

Does a URL in the result open?

No. Copy puts the payload on the clipboard. The button label becomes Copied.

Is there a camera button?

No. Drop a picture you already have. The decode stays in this browser.

Browse all Image Tools · Sitemap