QR code tools

QR code reader

Read a QR from a photo or screenshot locally. Crop to one code, review decoded text, copy or download it, or scan with an optional camera.

Files stay in this browser

Read a QR image

Choose, drop or paste one PNG, JPG or still WebP.

Up to 10 MiB, 12 million pixels and 4,096 pixels per side.

Loading reader…

Decoded content

The content appears here for review. Links, contact cards and Wi-Fi details are never opened automatically.

Read screenshots, photos and camera frames

Choose a QR image and the reader scans it automatically. If no code is found, drag a tighter area around one complete QR, keeping its border, and choose Read selected area. The keyboard crop fields offer the same control. Read full image resets the crop and scans again. Only one code is returned per scan; select another area to read another code.

Camera control stays with you

Use camera requests video permission without microphone access. A secure browser context is required. Stop camera ends the stream, and the camera also stops after a match, two minutes, hiding the page or leaving it. If permission is denied or the camera is unavailable, image upload still works. Camera compatibility depends on the browser and device.

Review the contents first

A QR can contain any text, including an unfamiliar website address or credentials. This reader displays the decoded content without visiting a URL, joining a network, adding a contact, making a call or sending a message. Copy and download are explicit actions. Nothing is saved to browser storage automatically.

Image limits and recovery

Decoding uses a cancellable worker and a maximum scan area of four million pixels. Large selections are reduced for scanning; cropping closer can preserve more detail. Animated images, SVG, PDF and non-QR barcodes are not supported. Damaged, tiny, blurred or heavily stylized codes may not decode. Try a sharper source and include the full border.

Replacing an image is atomic: if the new file fails to open, the previous image remains available. Clear all discards the image, camera frame and decoded content from this page; existing downloads and clipboard contents remain. The decoder is bundled locally using jsQR.