QR Code Reader

Reader for the cases where the code is a file, not something in front of you.

Camera access is requested only when you press the button. Frames are decoded on this device and discarded.

Reader and scanner are the same capability pointed at different inputs. A reader is what you need when the code arrived as an attachment, sits inside a PDF, or is part of a screenshot someone sent you — situations where pointing a camera at a screen is awkward or impossible.

The upload path accepts PNG, JPEG, WebP and GIF, and handles large photos by downscaling before decoding. That last part matters: a 12-megapixel phone photo passed directly to a decoder is slow and often fails, while the same image scaled to 1600 pixels decodes instantly.

How to use it

  1. Drop an image onto the upload area, or click to choose a file.
  2. Wait for the decode — large images take a moment on first use while the decoder loads.
  3. Copy the fields you need, or the raw content.

Why downscaling helps rather than hurts

QR decoding works on module edges, not on pixels. A photo that is too large has so many pixels per module that noise and JPEG artefacts dominate; reducing to around 1600 pixels on the long edge restores a clean edge profile. The same code can fail at full resolution and succeed after scaling.

This is also why screenshotting a code and uploading it works better than photographing a screen. There is no moiré, no perspective distortion and no motion blur to undo.

Reviewed 2026-10-21. This tool runs entirely in your browser — no server, no account, and nothing you generate is stored.

Frequently asked questions

Can it read a QR code from a PDF?

Not directly. Take a screenshot of the page in the PDF and upload the image instead — the result is identical.

What if the image has more than one code?

The first code that decodes is shown, with a note that others were found. Scanning a page of shipping labels is better done with a dedicated batch tool.

Does the image get uploaded?

No. The file is read with the browser's File API and decoded in memory. Nothing is sent to a server, and nothing is stored after you close the tab.

Related tools

More from QR codes.