Developer

QR Code Reader

Scan QR codes using your camera or upload an image. Instantly decode URLs, text, and other data.

Upload QR Code Image

PNG, JPG, or WebP

Decoding QR codes instantly

QR code readers reverse the encoding process: they take the black and white grid pattern, locate the three finder patterns at the corners, extract the encoded data, apply error correction, and output the original message. The reader doesn't need to contact a server or look anything up—everything is encoded in the pattern itself. Your phone's camera captures the image, computer vision algorithms detect the code, and the message appears instantly. This tool does the same thing in your browser using JavaScript, letting you scan from your camera or upload an image to decode.

The decoding process is deterministic and fast, which is why QR codes work so well in real-time scenarios: scanning a restaurant menu, boarding a flight, joining WiFi. The built-in error correction makes them resilient—a slightly blurry photo, a partially obscured code, or even a code printed at an angle can still be read as long as fewer than 30% of the modules are damaged. This robustness is why QR codes appear on everything from product packaging to event tickets.

How QR detection and decoding works

A QR reader first finds the three distinctive L-shaped finder patterns at the top-left, top-right, and bottom-left corners. These patterns are fixed and unmistakable, letting the algorithm locate the code and determine its orientation and scale. Once located, the reader extracts the data region—the area between the finders that contains the encoded message. The data is then deinterleaved (unscrambled) and decoded, with error correction applied to recover any corrupted bytes.

The error correction uses Reed-Solomon codes, a mathematical technique that adds redundancy so the decoder can reconstruct lost data. If 10% of the bytes are corrupted, the decoder can recover them. This is why a QR code with a coffee stain or a fold can still be scanned. The specific recovery capability depends on the error correction level chosen when the code was created (L, M, Q, or H).

Modern cameras and lighting matter: a code printed on paper and scanned in bright daylight decodes instantly, but a screen displaying a QR code at an angle or in dim light may require a moment or a second attempt. Contrast is critical—the dark modules must be significantly darker than the light modules. Pastels or low-contrast printing fails.

Tips for reliable QR scanning

  • Lighting. Natural daylight or bright indoor light works best. Very dim environments slow decoding.
  • Angle. Scanning straight-on is fastest, but QR codes are designed to work even at 45° angles.
  • Distance.The QR code should fill roughly 30–70% of your camera frame. Too small and details get lost; too large and you can't see the whole pattern.
  • Contrast. Avoid codes printed on similar colors or with watermarks overlaid. High contrast (black on white, or inverted) is ideal.
  • Stability. A slightly shaky camera is fine; the reader is fast. But if the code is moving rapidly, hold the phone still and aim steadily.

Common QR code data formats

  • URLs. Most common: https://example.com
  • WiFi credentials. Scanned QR opens WiFi join dialog: WIFI:S:NetworkName;T:WPA;P:Password;;
  • vCard contacts. Phone, email, address data structured as BEGIN:VCARD blocks.
  • Plain text. Any arbitrary text: notes, codes, or messages.

Frequently asked questions

Why does my QR code fail to scan?

Most often it's a lighting or contrast issue. Ensure the code is well-lit and has high contrast between dark and light areas. If the image is too small or too large, move closer or farther away. Scratches, stains, or watermarks covering more than ~30% of the code also prevent scanning.

Can I scan a QR code from a screenshot or image file?

Yes. You can upload an image file (JPG, PNG, WebP) containing a QR code. The reader will decode it instantly. You can also take a photo of a printed QR code and upload that. The data doesn't change—only the format of how you provide the image.

Is my camera permission permanent?

Camera access is only requested when you click “Use Camera” to start scanning. Most browsers ask for permission once per domain and remember your choice. You can revoke permission in your browser settings.

Is the decoded QR content stored anywhere?

No. All scanning and decoding happens in your browser. The decoded text is never sent to a server, making this tool safe for scanning private data like WiFi passwords, personal contact information, or sensitive URLs.