QR Code Reader
Read a QR code from an image. Keep the contents on your device.
How it works
- Choose an image
Use a screenshot, photo or exported QR image. Include the whole code and its surrounding margin.
- Read the code
The reader looks for one QR symbol. If an image contains several, crop to the one you want first.
- Get the content
Copy the text, save a UTF-8 text file, or download the decoded bytes. Reset clears the result.
Your files stay on your device.
Image decoding and QR reading run in your browser. This tool does not upload, log or store your images or payloads. It never visits decoded links, executes markup or loads external resources referenced by an SVG. Cancel stops processing; reset releases the image and result.
Frequently asked questions
What happens if no QR code is found?
No content is invented. Try a clearer image, crop out distractions, preserve the border and avoid glare or distortion. Both dark-on-light and inverted codes are attempted. Damaged or highly styled codes may not be readable.
Which images and QR symbols can I read?
PNG, JPEG, WebP, GIF, BMP, SVG, TIFF and AVIF are supported. Browser support varies; other natively decodable images may work too. Only the first frame or TIFF page is read. SVG is rasterized locally; external images and fonts are not loaded, so its appearance can change. Browser memory and canvas limits still apply; there is no tool-imposed file size limit.
This tool reads standard QR codes, versions 1–40. This page returns one detected symbol, not all symbols in an image. Micro QR, other barcode types, structured-append reassembly and camera scanning are outside this reader’s support.
Is the text an exact representation of the payload?
The decoded text is shown without further changes. Numeric and alphanumeric segments become text; byte segments are interpreted as UTF-8 and Kanji segments use the decoder’s Shift-JIS mapping. ECI declarations do not change this tool’s text interpretation. A warning appears for ECI or invalid UTF-8 byte segments; the latter may be missing from the displayed text. Other applications may interpret undeclared character encodings differently.
The byte download preserves the combined decoded data: byte segments retain their bytes, numeric and alphanumeric segments use character bytes, and Kanji segments use Shift-JIS bytes. It is not the raw QR bitstream and does not include segment boundaries, ECI metadata, error correction or padding. Use the hex view to inspect non-text content. The text download encodes the returned text as UTF-8 without adding a newline.
Will links, Wi-Fi settings or contacts open automatically?
No. Every decoded value is shown as text. Reading a code does not visit a URL, join a network, add a contact or execute content. Review the value before using it elsewhere.
Create a new code with the QR Code Generator.