Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. Image Processing
  3. QR Code Reader & Scanner
Add to favorites

QR Code Reader & Scanner

Scan QR codes from an image or your camera, in this tab. Reads every code in a picture, rescues a faded or transparent one and says which step worked, and parses WiFi, vCard, calendar, geo and payment payloads by their published grammars.

Edits stay in your browserMore image processingJump to full guide

Related reading

  • How a QR Code Is Found and Decoded in an Image10 min read

Initializing in your browser…

You might also like

Barcode Reader & Scanner

Read a linear or 2D barcode from an image or camera. Verifies the GS1 check digit, corrects a UPC-A that a browser reports as a thirteen-digit EAN-13, and names which decoder answered.

Color Blindness Simulator

See an image through the two published models of colour vision deficiency, Machado 2009 and Vienot 1999, computed in linear light where those models are defined, with the colour pairs that stop being distinguishable listed by name.

Image Cropper

Whole-pixel crops with the rectangle typed or dragged, checked by decoding the output and comparing it with the pixels that went in. Quarter turns and mirrors are exact permutations, so nothing is clipped.

QR Code Reader & Scanner: a worked example

A photograph of a cafe window holds a Wi-Fi code whose password contains a semicolon.

Payload in the code

WIFI:T:WPA;S:Cafe\;Bar;P:pa\;ss\:word;H:false;;
What QR Code Reader & Scanner produces

What the page shows

Network name (SSID): Cafe;Bar
Security: WPA (WPA or WPA2 personal)
Password: pa;ss:word  (masked until you show it)
Version 4, 33 by 33 modules, byte mode, 47 bytes

The Wi-Fi format separates fields with semicolons and escapes a literal one with a backslash, so the password is split on unescaped semicolons only. A pattern that stops at the first semicolon returns "pa\", three characters of nine. The panel also reports what the symbol is, not just what it said, and masks the password until you ask for it.

About the QR Code Reader & Scanner

Scan and decode QR codes from an image or your camera, in this tab. The payload is read against its own published grammar, so a Wi-Fi password with a semicolon in it comes back whole, and the page says what the symbol is: its version, its encoding mode and its size in modules. A picture that will not decode is cleaned up and tried again, with every step listed.

How to use

  1. 1Upload an image holding one or more QR codes, or switch to the camera
  2. 2Read the decoded payload, broken into the fields its format defines
  3. 3Show a masked password or secret when you need it, and copy the payload
  4. 4If nothing decodes, read the list of steps that were tried and what the picture measured

Where this helps

  • URL extraction

    Decode a QR code from a screenshot or photo to read the link before opening it on a phone.

  • Wi-Fi credential sharing

    Read the network name, security type and password out of a Wi-Fi code, with the password kept masked until you show it.

  • A sheet of codes

    Photograph a page of tickets or labels and get every payload on it in one pass.

Key features

  • Reads codes that are rotated, at an angle, inverted, blurred, noisy, without a quiet zone, or as small as two pixels a module
  • Rescues a faded, transparent or colour-printed code and names the step that worked
  • Returns every code in a picture, not just the first
  • Reports the version, module count, encoding modes, byte count and any ECI assignment
  • Reads Wi-Fi, vCard, MECARD, calendar, geo, mailto, tel, SMS, authenticator and SEPA payloads by their published grammars
  • Refuses to offer a button for a javascript: or data: payload, and says why
  • Masks passwords and secrets until you ask for them
  • Session history with a CSV export, never written to storage

How it works

Decoding is done by the jsqr library, loaded only when you actually scan, and nothing leaves the tab. The picture is drawn to an off-screen canvas and the pixels are handed to the decoder with inversionAttempts set to attemptBoth, so a light-on-dark code reads as well as a dark-on-light one. Measured against a corpus generated by this site's own QR generator, where the payload of every fixture was chosen in advance and the module matrix was decoded back before it was ever drawn, that single pass reads 18 of 20 fixtures including a code at two pixels a module, a code turned 45 degrees, a code photographed at an angle, one with no quiet zone at all, an inverted one, a blurred one and a noisy one.

The two it could not read are the reason for everything else on the page. One was a code printed at low contrast (its darkest and lightest parts 2.2 to 1 apart, where ISO/IEC 18004 asks for at least 3 to 1) and it is fully recoverable: every module is still there and only the range is wrong. The other had 36 percent of its area covered by a logo, and the H error correction level carries about 30 percent of the codewords (ISO/IEC 18004 table 12), so its data is gone rather than merely hard to see. A picture that does not decode straight away is therefore put through a ladder of named steps (composite onto white, stretch the contrast, convert to grey under Rec. 709, sharpen, halve the size, double the size), each with the reason a real photograph needs it and each timed, and the page lists every step and says which one made the difference. When nothing works it says which measurable precondition the picture fails and states plainly that a covered code can be past recovery rather than blurry. The low-contrast fixture now reads, and the 36 percent one still does not, which is correct.

jsqr finds one symbol. Measured on a fixture holding two codes side by side, it returned nothing at all, because six finder patterns are present and the triple it picks spans both. After the whole picture is tried, a sliding square window the size of the shorter side sweeps across it and every distinct payload found is listed as its own result, so a sheet of tickets or a photograph of a noticeboard returns all of them. The panel also reports what the symbol IS rather than only what it said: the version, the module count derived from it by ISO/IEC 18004 table 1, the encoding modes used, the byte count, any ECI assignment, and, when the payload bytes are not valid UTF-8, the ISO 8859-1 reading that section 7.4.4 makes the default for byte mode.

Once a string comes back, everything after that is grammar, and each one is read against its own published document rather than searched for with a pattern: Wi-Fi credentials by ZXing's Barcode Contents rules, where fields are separated by unescaped semicolons and a backslash escapes any of \ ; , : and ", so a password containing a semicolon comes back whole; vCard by RFC 6350 including line folding and value escaping; MECARD; calendar events by RFC 5545; geographic points by RFC 5870 with each coordinate range checked and percent-encoded before it goes into a map link; mailto by RFC 6068; tel by RFC 3966; text messages in both the SMSTO and RFC 5724 forms; authenticator secrets; and SEPA payment requests by EPC069-12. Passwords and shared secrets are masked until you ask for them. A payload carrying a scheme is judged by the same rule the markdown tools use: a javascript: or data: URI is shown as text with the reason and gets no button, while an http or https address gets one. Scans accumulate in a list that lives in the page, exportable as RFC 4180 CSV, and is deliberately never written to storage, because a scan can hold a password or a payment instruction.

Frequently asked questions

What types of QR codes can it read?

Any standard QR symbol. The payload is then classified against the published grammars for Wi-Fi, vCard, MECARD, iCalendar, geo, mailto, tel, SMS, otpauth and SEPA payment codes, and anything else is shown as text or judged as a URI.

Why did my code not scan?

The page tells you. It measures the contrast between the darkest and lightest parts of the picture and the size in pixels, lists every recovery step it tried, and separates a code that is hard to read from one that is past recovery: error correction at the H level covers about 30 percent of the codewords, so a logo or a tear over more than that destroys the data rather than obscuring it.

My Wi-Fi password has a semicolon in it. Will it come back right?

Yes. The Wi-Fi format separates fields with semicolons and escapes a literal one with a backslash, so a password is split on unescaped semicolons only and the escapes are removed afterwards. A pattern that stops at the first semicolon returns the first few characters instead.

Can it read several codes in one picture?

Yes. The whole picture is tried first, then a sliding square window sweeps across it, and every distinct payload is listed separately.

Is a decoded link safe to open?

Nothing here can tell you that. A QR code is data written by whoever printed it and it is checked against nothing. The tool will not offer an open button for a javascript: or data: payload, and it shows the scheme of anything else, but a working https link can still lead anywhere.

Does the camera scanner work on mobile?

Yes, on a device with a camera and a browser that grants access. The camera and the file path use the same decoder settings, so a light-on-dark code that reads from a file also reads from the camera.

Related tools and how they differ

  • QR Code Generator: Builds QR codes from WiFi, vCard, email, payment and URL data with colors, logos, shapes and batch export; use it to make a code, not read one.
  • Barcode Reader & Scanner: Decodes 1D barcodes (EAN, UPC, Code 128) from image or camera with check-digit verification; use it when the code is a striped barcode, not a QR square.
  • Barcode Generator: Generates 1D barcodes in 20+ formats; use it to produce a linear barcode rather than scan an existing QR code.

Further reading

  • How a QR Code Is Found and Decoded in an Image10 min read

Private by design

Images are decoded, edited, and exported entirely inside this browser tab. No originals, exports, or metadata are uploaded.