QR Code & Barcode Scanner
Read a code out of an image, and say what it does before you follow it. Free, and runs entirely in your browser — nothing you enter is uploaded or stored.
About QR & Barcode Reader
Reads the barcodes out of an image: a photograph of a label, a screenshot of a QR code on a page, a scan of a delivery note, or an SVG. ZXing does the decoding — the same library a great many scanner apps use — compiled to WebAssembly and running in this tab, so the picture is never uploaded.
It reads what it finds rather than what it is told to expect: QR and Micro QR, Data Matrix, Aztec, PDF417 and MaxiCode, and the striped family — Code 128, Code 39, Code 93, Codabar, ITF, EAN-13, EAN-8, UPC-A, UPC-E and GS1 DataBar. Narrowing the search to one family helps when an image holds several codes and only one of them matters.
Rotated, inverted and downscaled images are all tried, because a photograph is rarely square to the label. Every symbol found is reported with its content, its symbology, its error-correction level and where it sits in the picture, and a code whose check digits disagree is flagged rather than passed off as read.
Then it reads what the code actually says. Almost nothing worth scanning is plain text — it is a URL, a WiFi credential, a contact card, a two-factor enrolment secret, a payment request — so each is parsed into its parts rather than handed back as a string. And a decoded URL is examined rather than merely displayed, because a QR code is the only kind of link nobody can read before following it. That is the whole point of the format and the whole problem with it: a sticker over the code on a parking meter works because the victim sees a square and their phone sees an address. So the scheme, the host and the spelling of the host all get checked here, against the same tests the homograph detector applies to a name typed by hand.
Where it helps
- Reads every common symbology, two-dimensional and striped alike, without being told which to expect.
- Parses what the code holds — WiFi, contact card, two-factor secret, payment request, calendar event — instead of returning a raw string.
- Takes an SVG as well as a raster image, drawn large before scanning — so the file the QR generator here writes reads straight back.
- Checks a decoded URL for the things you cannot see: a look-alike domain, credentials hiding the real host, a scheme that runs rather than opens.
- The image stays in your browser — a boarding pass or a prescription label is not something to upload.
Limits
- A blurred, cropped or heavily compressed photograph may not decode; the whole symbol and its quiet zone have to be in frame.
- The safety checks catch the known tricks, not every trick. A perfectly ordinary domain can still host something hostile, and no checker can tell you that.
- The first scan loads the decoder as WebAssembly, which takes a moment.
- Live scanning from a camera is not offered; this reads an image you already have.
Frequently asked questions
Nothing was found — what now?
Crop to the code and try again. A photograph needs the whole symbol including its white margin, reasonably in focus; a screenshot needs the code at its original size rather than scaled down.
Is the image uploaded anywhere?
No. It is decoded and scanned in this tab, which is the reason to do it here rather than on a site that would receive the picture.
Can it scan from my camera?
Not here — this reads an image file. Take the photograph with your camera app and scan that.
Does it read SVG?
Yes. A vector has no resolution of its own, so it is drawn at about twelve hundred pixels before scanning — which matters, because a QR code written at scale 1 declares itself thirty-three pixels across and no decoder could find it at that size.
What does the flagged check digit mean?
The symbol was readable but its own checksum disagrees, so the content may be misread. Rescan from a better image before trusting it.
Why does it grade the code?
Because a code is a link you cannot read before following. The grade is what the payload does if you act on it — an ordinary https address scores full marks, a disguised host or a javascript: scheme scores nothing, and every point taken off is a line you can read underneath.
It found my WiFi password in plain text. Is that a bug?
No, that is how the format works: a WiFi QR code carries the password unencrypted, so anyone who photographs the sticker has it. Worth knowing before printing one for a guest network.
Related tools
- Barcode Generator — Draw QR, Data Matrix, Code 128, EAN and more as SVG
- QR Code Generator — Create scannable QR codes as SVG
- IDN Homograph Detector — Check whether a domain name is imitating another one
- TOTP / HOTP Generator — Two-factor codes, the QR code to enrol with, and why one did not match
- Icon Font Generator — Build a web font from SVG icons or an SVG font
- Image Converter — Convert between PNG, JPEG, JFIF, WebP, GIF, HEIC and SVG
More Images & Files tools
- Icon Font Generator — Build a web font from SVG icons or an SVG font
- Image Converter — Convert between PNG, JPEG, JFIF, WebP, GIF, HEIC and SVG
- Image Resizer — Resize to a size, a proportion or a longest side
- Crop Image — Cut a rectangle out, or trim a flat border away
- Rotate Image — Turn by a right angle or any angle, and flip
- Image Base64 Converter — Turn an image into a data URI for CSS or HTML, and read one back
- WebP Converter — To WebP for the web, or back out of it
- SVG Converter — Draw an SVG at any size, or wrap a bitmap in one
- Background Remover — Take a flat background out and keep the subject
- Image Compressor — Resize and re-encode images to save bytes
- Image Optimizer — Strip metadata and redundant markup without touching the picture
- Favicon Generator — Build favicon PNGs and a multi-size .ico
- File Checksum — Verify a download, and work out which algorithm made the checksum
- MIME Detector — Identify a file from its magic bytes
- Office Password — Protect a Word, Excel or PowerPoint file with a password
- Office Password Remover — Remove the password from a Word, Excel or PowerPoint file
- Image Editor — Crop, straighten, adjust and cut out, with every step visible and reversible
- Passport Photo Maker — Passport and visa photos at each country's size, with head guides and a print sheet
- PDF Editor — Move and retype what is already on the page, reorder, annotate, stamp and sign, with the document in front of you
- PDF Viewer — Read, search and inspect a PDF without leaving the browser
- PDF Password & Permissions — Lock a PDF with AES-256, and say what a reader may print, copy or change
- PDF Password Remover — Strip the password from a PDF you can already open
- Merge PDF — Join several PDFs into one document
- Split PDF — Cut a PDF into separate documents
- Delete PDF Pages — Remove pages from a PDF and keep the rest
- Rearrange PDF Pages — Put a PDF's pages in a different order
- Rotate PDF — Turn a PDF's pages the right way up
- Compress PDF — Make a PDF smaller, by rebuilding it or redrawing it
- Watermark PDF — Stamp text or a logo across a PDF's pages
- Sign PDF — Put a signature and a date onto a PDF
- Edit PDF — Add text to a PDF page, and hide what is underneath
- PDF to Images — Turn every page into a PNG, JPG, WebP, GIF or JFIF
- OCR PDF — Read the text off a scanned PDF
- PDF to Word — Turn a PDF into an editable .docx that keeps its layout
- PDF to Excel — Pull a PDF's tables into a .xlsx workbook that keeps their formatting
- PDF to PowerPoint — Turn a PDF's pages into editable .pptx slides that look the same
- Word to PDF — Turn a .docx document into a PDF that looks the way it does in Word
- Excel to PDF — Print a .xlsx workbook to PDF with its formatting and page setup
- PowerPoint to PDF — Turn a .pptx deck into a PDF that looks the way the slides do
- Images to PDF — Turn photos or scans into one PDF document
- PDF to Text — Pull the text out of a PDF as plain text
- Crop PDF — Trim the margins off every page
- Page Numbers — Number the pages of a PDF
- Header & Footer — Put a running head or foot on every page
- Bates Numbering — Stamp sequential legal numbers across pages
- Reverse Pages — Flip a PDF's page order end to end
- Add Blank Pages — Insert empty pages anywhere in a PDF
- N-Up PDF — Put several pages on one sheet
- PDF Booklet — Reorder pages for folded booklet printing
- PDF Metadata — Read, change or strip a PDF's properties
- Flatten PDF — Make form answers part of the page
- Alternate & Mix Pages — Interleave two PDFs a page at a time
- PDF Overlay — Draw one PDF over or under another
- Combine to Single Page — Stack every page into one continuous strip
- Divide Pages — Cut every page in half or into quarters
- Posterize PDF — Tile a large page across several printable sheets
- Fix Page Size — Put every page onto one uniform sheet
- Page Dimensions — Measure every page, its rotation and its sheet
- Rotate by Any Angle — Turn pages by a fraction of a degree or more
- Remove Annotations — Strip comments, highlights, links and stamps
- PDF Attachments — List, extract, add or remove embedded files
- PDFs to ZIP — Package several PDFs into one archive
- PDF Bookmarks — Read, write or remove a PDF's outline
- Table of Contents — Build a contents page from the bookmarks
- Page Labels — Number front matter in roman and the body in arabic
- Sanitize PDF — Strip scripts, actions, attachments and metadata
- Extract Images — Pull every embedded picture out of a PDF
- Extract Tables — Turn a PDF's tables into CSV, JSON or Markdown
- PDF to Markdown — Convert a PDF into Markdown with its headings, emphasis, lists, tables and pictures
- PDF to JSON — Export a PDF's text as structured JSON
- Compare PDFs — See which pages of two PDFs differ, and by how much
- Remove Blank Pages — Find the empty pages, and take them out
- Invert PDF Colours — A dark-mode version of a document
- PDF to Greyscale — Convert every page to shades of grey
- Adjust PDF Colours — Brightness, contrast and saturation across a document
- Scanner Effect — Make a clean PDF look like a photocopy
- PDF Background Colour — Tint the paper behind the content
- Rasterize PDF — Flatten every page into a picture of itself
- PDF to CBZ — Turn a PDF into a comic book archive
- CBZ to PDF — Turn a comic book archive into a PDF
- Text to PDF — Set a plain text file as a document
- Markdown to PDF — Set Markdown as it renders: headings, emphasis, lists, code, quotes and tables
- JSON to PDF — Print a JSON file as an indented tree
- CSV to PDF — Set a spreadsheet export as a printed table
- XML to PDF — Print an XML document as an indented tree