QR Code Scanner — Camera or Image

Choose a scanning mode below. Your camera feed and uploaded images are processed entirely in your browser — nothing is sent to any server.

How QR Code Scanning Works

A brief look at the technology behind every scan.

The Anatomy of a QR Code

Every QR code is a two-dimensional matrix of dark and light modules arranged on a square grid. Three large finder patterns — the distinctive squares in three corners — let a scanner instantly locate and orient the code regardless of angle or rotation. A fourth, smaller alignment pattern helps compensate for perspective distortion when the code is photographed at an angle. Between these landmarks, timing patterns (alternating dark-light rows and columns) establish the grid coordinates so every module can be mapped to its correct position.

From Pixels to Data

When you point your camera at a QR code, the scanner captures a video frame and converts it to grayscale. It then identifies the three finder patterns to determine the code's boundaries and perspective. The image is transformed into a flat, aligned grid and each module is classified as dark (1) or light (0). This binary data stream is then decoded according to the QR code specification — first reading the format information (error correction level and data mask) stored near the finder patterns, then extracting the encoded payload using the appropriate character encoding mode (numeric, alphanumeric, byte, or Kanji). Finally, Reed-Solomon error correction repairs any modules that were misread due to damage, dirt, or poor lighting. The result is the original data: a URL, a text string, WiFi credentials, a contact card, or any other supported content type.

Browser-Based Scanning

This scanner runs entirely in your browser using JavaScript. It accesses your camera through the MediaDevices API (a standard web API supported by all modern browsers), draws each video frame to an invisible HTML canvas, and analyses the pixel data using the jsQR library. The entire process happens locally on your device — no images or decoded data are ever transmitted to a server. For image uploads, the same process applies: the uploaded file is drawn to the canvas and scanned in a single pass. This approach means you get instant results with complete privacy, and the scanner works offline once the page has loaded.

How to Scan a QR Code Online

Three steps. Under ten seconds. No app required.

1. Choose Your Mode

Select Camera to scan a QR code in real time using your device's webcam or phone camera. Select Upload Image to scan a QR code from a screenshot, photo, or saved image file. Both modes work on desktop and mobile browsers.

2. Capture or Upload

In camera mode, point your camera at the QR code and hold steady — the scanner analyses frames continuously and will detect the code automatically. In upload mode, click the upload area or drag and drop an image file. Supported formats include PNG, JPG, GIF, BMP, and WebP.

3. Get Your Result

The decoded data appears instantly below the scanner. Copy it to your clipboard with one click, or if the QR code contains a URL, open it directly in a new tab. The scanner identifies the content type automatically so you always know what kind of data the code contains.

Tips for Better Scanning

Maximize your scan success rate with these practical tips.

💡

Good Lighting Matters

QR code scanners rely on contrast between dark modules and a light background. Ensure the QR code is well-lit and avoid strong directional light that creates glare. If scanning from a screen, increase the display brightness. Natural, diffused lighting provides the best results for both camera and image-based scanning.

📏

Keep It Flat and Steady

Hold your phone parallel to the QR code surface for the clearest capture. Scanning at extreme angles introduces perspective distortion that makes detection harder. Curved surfaces like bottles or mugs distort the pattern — try to flatten the code or photograph it from directly above. A steady hand also helps the scanner lock on faster.

🔍

Frame the Entire Code

Make sure the entire QR code, including its quiet zone (the white border around it), is visible in the camera frame or uploaded image. Cropping into the code or cutting off the finder patterns will prevent successful scanning. Leave some margin around all four edges for the best results.

🖼

Use High-Resolution Images

When scanning from an uploaded image, higher resolution images yield better results. Blurry, heavily compressed, or very small QR code images may not contain enough detail for accurate module detection. If a scan fails, try a larger or sharper version of the image. Screenshots taken at full screen resolution generally work well.

QR Code Scanner FAQ

Is this QR code scanner really free?

Yes, completely free with no limits. There is no signup, no account, no watermark, and no daily scan cap. You can scan as many QR codes as you need — from camera or from uploaded images — without paying anything. QRMint is supported by our broader ecosystem of developer tools and does not monetize the scanner through ads or data collection.

Is my data private when I scan a QR code here?

Yes. All scanning happens entirely in your browser using JavaScript. Your camera feed is never streamed to any server, and uploaded images are processed locally on your device. The decoded data is displayed only to you and is never transmitted, stored, or logged by QRMint. Once you close or refresh the page, all data is gone.

What types of QR codes can this scanner read?

This scanner reads all standard QR codes as defined by the ISO/IEC 18004 specification. That includes QR codes containing URLs, plain text, WiFi network credentials, vCard contact information, email addresses, phone numbers, SMS messages, calendar events, geographic coordinates, and any other data encoded in numeric, alphanumeric, byte, or Kanji mode. It does not read other barcode formats such as UPC, EAN, or Data Matrix — it is specifically a QR code scanner.

Why is my camera not working with the scanner?

The most common reason is that your browser has not been granted permission to access the camera. When you click "Start Camera," your browser will show a permission prompt — you must allow camera access for the scanner to work. If you previously denied permission, you can reset it in your browser's site settings. Additionally, camera access requires a secure context (HTTPS), so the scanner will not work on plain HTTP connections. If you are on a desktop without a webcam, use the "Upload Image" mode instead.

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

Yes. Switch to the "Upload Image" mode and either click the upload area to select an image file or drag and drop the file directly onto it. The scanner supports PNG, JPG, GIF, BMP, and WebP formats. For best results, use a clear, high-resolution image where the entire QR code (including its white border) is visible. Heavily cropped, blurry, or very low-resolution images may not scan successfully.

Need to create QR codes? QRMint generates URL, vCard, Email, Phone, SMS, WiFi, Event, and Payment QR codes — all free, no signup, with full styling controls built in.

Scan Any QR Code Instantly

Free forever. No app install. No signup. Camera or image upload.

Start Scanning →
Part of the SoftVoyagers Ecosystem