Barcode scanner
This tool decodes actual 1D bar patterns from image files or camera frames. It first tries the browser’s supported detector, then a local ZXing decoder with horizontal, vertical and inverted attempts. It differs from barcode generation and QR-only scanning in direction and supported formats.
Key features
- Actual 1D bar-pattern decoding from photos
- Explicit camera start and stop
- Native capability checks and local ZXing fallback
- Horizontal, vertical and inverted decoding attempts
- Literal values with leading zeros and punctuation preserved
- 30-result in-tab history and TXT download
How to use
- Choose a photo or generate the real Code 128 example.
- Select all supported formats or a known symbology.
- Press Read, or start and allow camera access.
- Inspect the reported format and copy the literal content.
- Optionally download and clear this tab’s TXT history.
Use cases
- Read an EAN or UPC printed on packaging
- Check the printed output of a Code 128 label
- Decode a photo without granting camera access
- Collect literal values from several labels
Frequently asked questions
Does this read QR codes?
This tool reads Code 128/39/93, Codabar, EAN-13/8, UPC-A/E and ITF. Use the existing QR scanner for QR codes. Barcode generation performs the reverse operation: creating bars from a value.
What if BarcodeDetector is unavailable?
The local ZXing JavaScript decoder reads the same pixels. It also runs when native formats are unavailable or the native detector finds nothing. Formats outside the stated 1D allowlist are not accepted.
Why does my UPC start with an extra zero?
UPC-A and EAN-13 with a leading zero can represent the same bars. Automatic mode reports the decoder’s actual format and preserves the returned text. Choose UPC-A or EAN-13 explicitly when that distinction matters.
Will it read every barcode in one photo?
It returns the first decoded barcode. Take a closer photo or crop another code to read it separately. Decode images are reduced to 1600 pixels on a side and 1.5 million pixels, so tiny bars may lose detail.
When is the camera released?
It stops after one result, Stop, two minutes, hiding the tab, leaving the page or the input track ending. A stream granted after cancellation is also closed. The browser’s permission dialog may still need to be dismissed manually.
Does it identify products, prices or authenticity?
No. It reads only the encoded literal value. It does not call a lookup or authenticity service and never opens a decoded URL automatically. History stays in tab memory and any TXT file you explicitly download.
Privacy
Images, frames and decoded values are processed in the browser without uploading or automatic saving. The camera starts only when requested and no microphone is used. Up to 30 distinct results remain in this tab’s memory; only an explicit TXT download saves them.
Comments & questions