Skip to content
PixelOkay
UTILITIES READ THE DETAILS

QR & Barcode Reader

Find the message behind the pattern. Read a code from an image or your camera, then review the decoded text before doing anything with it.

No uploads · No automatic links · Local decoding

Open reader ↗Free to use · No signup
  1. 01Add an image or camera
  2. 02Read the code
  3. 03Review & copy
All utilities ↗

Read a code, review the result

Image or camera · One code per scan

PNG, JPEG, WebP, GIF or BMP · Up to 20 MiB and 24 megapixels

One code is returned per scan. Crop closely around the code if there are multiple codes or small details in a large photo. Animated images are scanned as a still frame.

Camera access starts only when you choose Start camera and approve the browser permission. HTTPS or localhost is required. No microphone access is requested.

Read a QR code or barcode from an image

  1. Choose an image, drag it into the reader, or paste an image from your clipboard.
  2. The reader checks dimensions and scans locally, with rotation and inverted-colour retries. Select a narrower format group if helpful.
  3. Review the format and decoded text, then copy it or download JSON. Nothing is opened automatically.

Scan with your camera

  1. Choose Start camera and approve the browser's camera permission. The reader prefers a rear-facing camera where available.
  2. Hold the code steadily in good light, with its full border visible. One frame is decoded at a time.
  3. The camera stops after a successful decode. You can also stop it manually, clear the workspace, switch to an image, or leave/hide the page.

Supported formats

QR Code, Data Matrix, Aztec, PDF417, Code 128, Code 39, EAN-13, EAN-8, UPC-A, Interleaved 2 of 5 and Codabar. Support depends on image quality and code variants. Micro QR, GS1 DataBar/RSS, Code 93, UPC-E and proprietary codes are not included in the supported-format list.

Recover a small code from a large screenshot

A small code can lose useful pixel detail when a large screenshot is reduced for scanning. Isolating one code can help, but cropping away its surrounding quiet border can make recognition worse.

  1. Choose your own supported image containing one clear code. Select the relevant format group if you know it; otherwise start with All supported formats.
  2. If no code is found, use Crop Image on the original to keep the whole code and some clear border. Avoid enlarging a tiny code and expecting new detail.
  3. Scan the crop as a new image. For a code on a PDF page, first render that page with PDF to Image, then crop if needed; this reader does not import PDF directly.
  4. Review the decoded text and format. Copying a value does not establish that it is a trustworthy link, and the reader neither opens it automatically nor looks up a product.
  5. Keep the downloaded JSON only if you need its payload and source metadata. For camera scanning, use the supported secure-context/permission workflow and reposition to avoid glare.

Authored scan-recovery workflow, not a supplied decoded payload or successful camera demonstration. Recognition returns one code per scan. Failure or timeout does not establish absence of a code, and a successful decode is not a destination-safety check.

Image and scan limits

Image files must be PNG, JPEG, WebP, GIF or BMP, at most 20 MiB and 24 megapixels, with neither side above 32,768 pixels. Header dimension checking reads at most 256 KiB. SVG, PDF and HEIC are not decoded here. Large images are scaled to at most 2,400 pixels on either side and 4 million scan pixels. Small codes in large images may need a closer crop.

The image is decoded in your browser; code recognition runs in a worker with a 15-second per-frame limit. A failed scan does not prove there is no code. This reader returns one code per scan, does not provide product lookups and does not check the trustworthiness of the decoded content.

Privacy

No images, camera frames or decoded content are uploaded or saved in browser storage. Camera capture uses video only and stops on success, manual stop, hidden page or page exit. Permission requests cancelled by clearing/stopping cannot attach a late camera stream. Downloaded JSON contains the decoded text and source metadata you chose to scan.

Decoder: ZXing for JavaScript, bundled locally under its Apache-2.0 license. No runtime CDN request is needed.

Frequently asked questions

Will a decoded link open automatically?

No. All results appear as plain text. You decide whether to copy and use them elsewhere.

Why can a barcode fail to scan?

Blur, glare, small modules, cropping off the quiet border, unsupported formats and multiple overlapping codes can prevent decoding. Try a sharper, closer image or select the relevant format group.

Why does the camera not start?

Camera scanning needs HTTPS or localhost, device support and permission. Another application may also be using the camera. Local image scanning remains available.

Continue your workflow

Decode one payload without trusting its destination

Choose a supported local image or camera workflow, inspect the recognized value and copy it only when you intend to use that content.

Scope of this workflow

A failed scan is not proof that no code exists. The reader does not perform product lookups or assess the safety of a decoded URL.

QR Code Generator - Download PNG or Vector SVG · All utilities · Privacy policy · Contact PixelOkay