RunTheTests
/

Barcode Reader

Decode a barcode from a photo, using the browser's own detector.

How this processes your file

The image is drawn to a canvas and handed to the browser's own BarcodeDetector, configured for the common 1D symbologies — Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF and Codabar. Using the platform detector rather than shipping a decoding library is a deliberate trade: it means the image never leaves the tab and nothing is downloaded to make it work, at the cost of not existing in Firefox or Safari. Where it is absent the page says so plainly, because the alternatives are bundling a decoder or sending your image to a service, and neither is worth doing silently.

What the results mean

Value
The decoded digits or text. What a scanner would send to the till or the system.
Format
Which symbology it decoded as. The same digits in a different symbology are a different code.
No barcode found
Usually the photograph rather than the code — angle, blur, or too little of the frame.
Image uploaded
Never. The browser's own detector runs in this tab.

Common problems and fixes

Nothing decodes from my photo
Fill the frame with the barcode, hold the camera square to it, and include the blank space either side. A handheld scanner reads at angles a photograph cannot.
It says my browser has no detector
Firefox and Safari do not implement BarcodeDetector. A Chromium-based browser works, and the alternative would be uploading your image somewhere.
It read a QR code instead
Use the QR scanner for 2D codes. This is configured for 1D symbologies.

Frequently asked questions

Which barcode formats can it read?

Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF and Codabar — the common 1D symbologies. QR and other 2D codes go to the QR scanner.

Is my image uploaded?

No. Decoding uses the browser's own detector and happens entirely in this tab, which is the reason for using it rather than a library or a service.

Why does it not work in Safari?

Safari does not implement the BarcodeDetector API. The page reports that rather than pretending, because the workarounds are bundling a decoder or uploading your image.

More in Image