Built on advanced on-device AI and hardware acceleration to deliver professional-grade performance with uncompromising privacy.On-device AI — professional-grade, fully private.
Online QR Code Reader Scanner
Scan QR codes from an image or camera — every code found, decoded on your device.
- Runs on your device
- Finds every code in one image
- One image free · 100 with Pro
Drop an image containing a code
PNG, JPEG, WebP, GIF, BMP, SVG · up to 25.0 MB per image
Reads the code as soon as it is in frame. Needs a secure connection.
QR, Micro QR and rMQR. Fastest, and the fewest false reads.
Retries low contrast, inversion, rotation, noise and tiny codes in large photos.
Lower it when you expect one code and want the fastest answer.
One row per code, plus a row for any image where nothing was found.
How a QR code is actually read
A QR code is a grid of black and white squares called modules, and reading one is a sequence of four separate jobs rather than a single lookup. Knowing what those jobs are explains almost every scanning failure you will ever hit.
The four stages of a scan
- Find the code. The three large concentric squares in the corners are finder patterns, and their 1:1:3:1:1 ratio of dark to light survives being viewed at an angle. A scanner sweeps the image looking for that ratio, which is why a code needs a clear white margin around it — the quiet zone — before the ratio reads correctly.
- Work out the grid. The alternating row and column between the finder patterns is the timing pattern, and it tells the reader how many modules wide the symbol is. Larger codes add alignment patterns so the grid can be unwarped when the code is printed on a curved surface or photographed from the side.
- Read the format information. A short strip beside the finder patterns records the error-correction level and which of eight mask patterns was applied. The mask exists so the encoded data does not accidentally produce large blank areas or something resembling a finder pattern.
- Decode and correct. The unmasked bits are Reed-Solomon codewords. Damaged or obscured modules are reconstructed mathematically, which is why a code with a logo across the middle usually still works.
This reader runs those stages on your device. Nothing is uploaded, and after the first scan the page keeps working with no connection at all.
Why a QR code won't scan, and what fixes it
Almost every failed scan has one of six causes. This tool retries automatically for most of them, but knowing which one you are looking at tells you whether to change the image or change the settings.
- Not enough contrast. A code drawn in dark grey on a slightly darker grey — common in dark-mode screenshots and in photographs taken in shadow — gives a scanner no edge to find. This reader stretches the luminance range and retries, which recovers codes with as little as sixteen levels of separation between the light and dark modules.
- No quiet zone. The specification asks for a clear margin four modules wide on every side. A code cropped tight to its edge, or printed against a busy background, breaks the finder-pattern ratio. Nothing can fix this after the fact: recrop with the white border included.
- The code is tiny in the frame. A code that covers a fraction of a percent of a twelve-megapixel photo disappears entirely when a scanner downscales the image for speed. This reader sweeps the full-resolution image in overlapping tiles and magnifies small ones, so a 120-pixel code in a 4000-pixel-wide photo is still read.
- Motion blur or a photograph of a screen. A blurred code softens the module edges; a photograph of a monitor adds moire interference on top. Both are retried with noise reduction. Holding still and moving slightly closer beats any amount of software recovery.
- Inverted or unusually coloured. White modules on a black background are read automatically. Coloured codes work as long as the light and dark modules differ in brightness, not just in hue — a red-on-green code that looks high-contrast to a person is nearly flat to a scanner.
- Genuinely damaged. Error correction covers a surprising amount of loss, but a torn corner that removes a finder pattern cannot be recovered by anything. If part of a code is missing, the only fix is another copy of the code.
When the code is not in an image file at all
A code inside a PDF invoice or a scanned TIFF cannot be read directly — turn the document into images first with PDF to Image, or convert an unusual format with the image converter. HEIC photos straight from an iPhone are also converted first, and the reader tells you so with a link rather than failing silently.
Error correction levels, and which one to use
Every QR code carries redundant data so it can still be read when part of it is obscured. The level is chosen when the code is created, not when it is read, and it is a direct trade between resilience and how much you can fit in.
- Level L — about 7% recoverable. The most data in the smallest symbol. Right for a clean digital screen, wrong for anything printed and handled.
- Level M — about 15% recoverable. The usual default, and a sensible one for posters, packaging and business cards.
- Level Q — about 25% recoverable. Worth the extra size for codes on products that get scuffed, or anything laminated and reflective.
- Level H — about 30% recoverable. The level that makes a centre logo possible. Also the right choice for industrial labels and anything outdoors.
A higher level does not make a code easier to focus on — it makes it bigger, and a bigger code at the same physical size means smaller modules. For a code that will be photographed from a distance, size on the page matters more than the correction level.
What a QR code can contain
A QR code holds text, and everything else is a convention about how that text is written. This reader recognises each convention and shows you the fields rather than the raw string, which is the difference between reading a network name and reading a line of punctuation.
- Website link. Any http or https address. Shown with the full address visible before you open it, never opened for you.
- Wi-Fi network. Written as WIFI:T:WPA;S:network;P:password;; — parsed into the network name, the password and the security type. Escaped characters are handled, so a password containing a semicolon or a colon comes back whole.
- Contact card. Both vCard and the older MeCard format, split into name, organisation, phone numbers and email addresses. Folded vCard lines, which most contact exports produce, are rejoined before reading.
- Calendar event. A VEVENT block, shown as the summary, the start time and the location.
- Location. geo:latitude,longitude, with a link to a map. Coordinates outside the valid range are treated as plain text rather than turned into a link that goes nowhere.
- Email, SMS and phone. mailto:, sms:/SMSTO: and tel: addresses, each with a matching action button.
- Plain text. Anything else, including binary payloads and text in any script — Japanese, Arabic and emoji all round-trip exactly.
Reading barcodes as well as QR codes
Switch the code types setting from QR only to QR and barcodes and this becomes a general-purpose reader for twelve more symbologies. QR stays the default because it is what most people arrive here for, and because looking for fewer types is faster and produces fewer false reads.
What each family is used for
- Data Matrix. Tiny two-dimensional codes on electronic components, surgical instruments and postal items. Readable at a few millimetres square.
- Aztec. Transport tickets and boarding passes. Needs no quiet zone, which is why it suits a crowded ticket layout.
- PDF417. Driving licences, shipping labels and some visas. A tall stacked code that holds well over a kilobyte.
- EAN-13, EAN-8, UPC-A and UPC-E. Retail product codes. Reported as the digits printed on the package, not the longer internal form most readers hand back.
- Code 128, Code 39 and Code 93. Logistics, warehousing and asset tags. Code 128 is the dense modern one; Code 39 is the old reliable one that still turns up on inventory labels.
- ITF and Codabar. Shipping cartons and, in Codabar's case, blood banks and libraries — old, narrow-purpose and still in daily use.
Scanning safely — what a malicious QR code does
A QR code cannot execute anything by itself. The risk is entirely in what you do after reading one, and it is a real and growing category of fraud, sometimes called quishing. The defence is simple, and it is the reason this tool is built the way it is.
Four habits worth having
- Read the address before you open it. This tool always shows the decoded text first and never follows a link for you — which is exactly the step a phone camera skips.
- Look at the domain, not the wording. A link can say anything; only the part immediately before the first single slash decides where you land. Be suspicious of lookalike spellings and of shortener domains you do not recognise.
- Be wary of a sticker. A printed code covered by a fraudulent sticker is the most common physical attack — on parking meters, restaurant tables and charity posters. If the code looks applied rather than printed, do not use it.
- Never enter a password or payment detail on a page you reached from a code. Type the address you already know instead. A legitimate business will never need you to arrive via a code to pay them.
Wi-Fi codes deserve one extra note. A code that connects you to a network hands that network your traffic, so a Wi-Fi code posted in a public place is worth the same caution as an open network with a plausible name.
Scanning a lot of codes at once
One code at a time is a phone's job. A folder of images is not, and it is where this reader is genuinely better than an app: it all runs on your device, not our servers, and the results come out as a spreadsheet rather than a list you have to retype.
Where a batch run earns its place
- Inventory and stock counts. Photograph a shelf, drop the images in, export a CSV of every code with the file it came from.
- Event check-in. Reconcile a folder of ticket screenshots against a guest list without opening each one.
- Asset tagging. Read a run of equipment labels into a single file, keeping the image name beside each code so a mismatch is traceable.
- Archive and audit work. Scan a set of scanned documents for embedded codes, including ones you were not expecting — a file that contains no code still gets a row, so nothing is silently missing.
Results export as CSV, JSON or plain text. The CSV is written so a payload beginning with an equals sign cannot run as a spreadsheet formula, which matters when the content came from a code somebody else printed.
Why on-device scanning matters here specifically
Most online tools make a privacy claim. On a QR reader it is more than a nicety, because of what QR codes routinely contain.
- Wi-Fi codes carry a network password in plain text. Uploading that image to a server means handing over a working password to a network you use.
- Contact cards carry somebody else's name, phone number and email — data that is not yours to send anywhere.
- Payment and identity codes are increasingly common on invoices and official documents, and are exactly the class of image that should never be transmitted.
- Camera frames are a live view of wherever you happen to be pointing the camera.
None of it is uploaded. The image is decoded on your device, the camera stream never leaves it, and your scan history is stored only in this browser and can be cleared or exported at any time.
Frequently asked questions
How do I scan a QR code from an image?
Drag the photo or screenshot onto the drop area, or press Browse, then press Scan. The decoded content appears within a few milliseconds for an ordinary image, and every code found is outlined on the preview so you can tell which result came from which code. PNG, JPEG, WebP, GIF, BMP, SVG and AVIF are all read directly, with no conversion step first.
Can it find more than one QR code in a single picture?
Yes, and this is unusual. Most online scanners stop at the first code they find. A photograph of a page of tickets, a shelf of parcels or a poster with several codes is read in one pass: each code is listed separately with its own type, its own copy button and its own outline on the preview. Raise or lower the maximum in the settings if you want fewer results.
Why won't my QR code scan?
The five usual causes are low contrast, a missing quiet zone, motion blur, glare, and a code that is simply too small in the frame. This reader retries automatically: it stretches the contrast for grey-on-grey codes, inverts white-on-black ones, corrects rotation, applies noise reduction for photographs of screens, and sweeps the image in overlapping tiles so a code covering a fraction of a percent of a large photo is still found. If nothing is found after all of that, retake the photo closer and with the whole code plus its white margin inside the frame.
Can I scan QR codes with my camera?
Yes. Press Start camera and point the device at the code; it is read automatically the moment it is in frame, at roughly twenty frames a second. You can switch between the front and rear camera. Camera access needs a secure https connection, which this site uses. Pro adds continuous capture, which keeps collecting codes instead of stopping at the first one.
What types of QR codes can it read?
Website links, plain text, Wi-Fi network credentials, vCard and MeCard contact cards, calendar events, geographic coordinates, email addresses, SMS messages and phone numbers. The payload type is detected and shown as a labelled card: a Wi-Fi code is split into network name, password and security type, and a contact card is split into name, organisation, phone and email.
Does it read ordinary barcodes as well?
Yes, once you switch the code types setting from QR only to QR and barcodes. It then also reads Data Matrix, Aztec, PDF417, EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, ITF and Codabar. Retail codes are reported as the number printed on the package rather than the longer internal form most readers return.
Is scanning a QR code safe?
Reading one is safe; acting on one is where the risk is. A QR code is just text, and a malicious code contains a link to a page that is not what it claims. This tool always shows you the decoded address before anything is opened, and never opens it for you. Check the domain carefully, be wary of a code stickered over another one in a public place, and treat a code that asks for a password or payment exactly as you would an unexpected email.
Is the QR code reader private?
Yes. Every image and every camera frame is decoded on your device, and nothing is uploaded at any point. That matters more here than on most tools, because QR codes routinely carry Wi-Fi passwords and personal contact details — the two things you would least like to send to somebody else's server. Once the page has loaded, image scanning keeps working with no internet connection at all.
Can I scan a lot of images at once?
Free scans one image at a time, with no limit on how many times you do it. Pro queues up to 100 images in one run and lets you download every result as a single CSV, JSON or text file, or as one archive containing a text file per image. That is the workflow for inventory counts, event check-in lists and asset tags.
Is the QR code reader free to use?
Yes. Every symbology, every recovery pass, the camera and all the payload parsing are free, with no limit on how many codes you read. Pro adds scale rather than accuracy: batches of up to 100 images, a single-file export of the whole batch, files beyond the 25 MB free cap, and continuous camera capture.
Related tools
from 1,200 ratings
Rate this tool
Tap a star — it takes a second