jsQR Library Demo

A single-page feature demo for jsQR: live camera decoding, uploaded-image decoding, QR outline overlays, inversion-mode options, raw result metadata, decode timing, copy/open actions, and scan history.

Scanner

Ready
Start the camera, upload an image, or drag a QR image into the page.
Or drop a QR image here. PNG, JPG, GIF, and WebP images are fine.

Camera access usually requires HTTPS or http://localhost. For local testing, run python3 -m http.server in this file’s folder and open the localhost URL.

Raw ImageData inputShows jsQR’s main API path: canvas pixels go into jsQR(data, width, height, options).
Multiple sourcesDecode live webcam frames or still images from upload/drag-and-drop.
Visual location dataDraws the returned QR corner points and optional finder/alignment points.
DiagnosticsDisplays version, binary-data length, chunks, frame count, FPS, and decode timing.