Local browser tool

Barcode scanner

Explicitly start a camera or choose an image, decode one symbol locally, and inspect the text without automatically opening decoded URLs.

Processed locally in your browser.

Camera frames and chosen images stay in this browser. Read the rationale, then press Start camera; this page never requests permission on load.

Local camera and image decoding

Scan one barcode

Frames and images stay in this browser. Camera permission is requested only after the Start camera button.

Camera off

Scanner state

Permission not requested

Camera access begins only after you press Start camera. You can choose an image without camera permission.

How this tool works

Camera access starts only after a button press. The scanner prefers the browser's native BarcodeDetector when it reports supported formats and dynamically loads a maintained ZXing browser fallback otherwise. Image files follow the same local path; compatible browsers also expose an explicit clipboard-image action.

One decoded result is shown as selectable text with its symbology. A numeric value is passed directly to the existing in-memory structural validator, never through a query string or cross-route store.

What this tool does not check

Decoding proves only that a local decoder read pixels. It does not prove that a number was issued, that a company owns it, that a product exists, that GS1 Application Identifiers are semantically correct, or that a physical print meets verification grades. Decoded URLs are inert text and are never opened automatically.

Worked examples

A numeric retail symbol

A decoded 012345000058 keeps its leading zero and receives local length and check-digit evidence.

A QR URL

https://example.invalid/TEST-01 is displayed as text. The scanner does not create a link or navigate.

More than one symbol

When native detection reports multiple candidates, the scanner asks you to crop or reposition rather than guessing which value to use.

TEST / SYNTHETIC / NOT FOR COMMERCIAL USE. Examples do not identify real products or organizations.

Troubleshooting

Permission denied
Change this site's camera permission or choose a local image.
No camera found
Connect a camera, check the browser device list, or use image input.
Camera busy
Close other camera apps or tabs, then explicitly start again.
No symbol detected
Use even light, sharp focus, a complete quiet zone, and one symbol.
Browser unsupported
Try a current browser; local image input remains the preferred fallback.

Privacy and local processing

Frames, image bytes, filenames, and decoded values are not uploaded, logged, analyzed, persisted, or added to URLs. Stop camera, a successful one-shot scan, page navigation, pagehide, and component cleanup release decoder controls, media tracks, video sources, and object URLs.

Sources and review

Browser integration reviewed 2026-07-13 against the Barcode Detection API capability model and @zxing/browser 0.2.1. Identifier evidence uses GS1 General Specifications 26.0.0. BarcodeOpsKit is independent and not affiliated with GS1 or ZXing.

Generate and self-scan a barcode,inspect identifier evidence, or validate a local batch. Read theGS1 DataMatrix and QR Code comparison when carrier meaning matters.