Barcode Scanner
Read EAN, UPC, Code 128, Code 39 and ITF barcodes with your camera or from an image.
Reads EAN-13, EAN-8, UPC-A, Code 128, Code 39 and ITF. You can also drag an image here or paste a screenshot with Ctrl+V. Nothing is uploaded.
Verifies the check digit and explains the prefix, without needing the barcode image.
What this number means
What It Does
This tool reads a linear barcode from your camera, an image file, a dragged photo or a pasted screenshot, and then explains the number it found. That second part is the useful bit: a barcode number is not arbitrary. Its check digit proves the read was reliable, and its opening digits say whether it is a globally registered product number, a book, a periodical, or an in-store code that means nothing outside the shop that printed it. Everything is decoded in your browser and nothing is uploaded.
When to Use It
- You are taking stock and want to read a code off a carton without a handheld scanner.
- You have a photo of a product and want the number to look it up or paste into a spreadsheet.
- You printed labels and want to confirm they actually scan and carry the value you intended.
- You received a barcode image from a supplier and need to know which symbology it is and what it encodes.
Worked Examples
A valid EAN-13
A real published product number. The check digit validates, which is what tells you a read was reliable rather than a plausible-looking misread.
The same number with one digit wrong
Changing only the final digit breaks the checksum, and the analysis says so along with what the correct digit would be. This is exactly the protection that stops a smudged bar becoming a wrong product.
An ISBN as an EAN-13
The 978 prefix means this is a book. ISBNs are carried in the EAN-13 format rather than being a separate symbology, which is why the barcode on a book looks like any other product code.
An in-store number
Prefixes 20 to 29 are reserved for shops to number their own items — loose goods, in-house packing. Valid, but not globally unique, so it means nothing outside the shop that printed it.
Common Mistakes
- Photographing the barcode at an angle. Bar widths are what carry the data, and perspective distorts them — the far end of a tilted symbol has narrower bars than the near end. Hold the camera square to the label.
- Filling only a small part of the frame. A linear barcode is read along a horizontal line, so what matters is how many pixels each narrow bar gets. Fill the width of the frame rather than centring a small code in a large photo.
- Cropping out the quiet zones. The blank margins either side are part of the symbol, and a crop that starts at the first bar removes the decoder's reference for where the code begins.
- Trusting a read with a failed check digit. If the analysis reports a check digit mismatch, the number was misread — do not use it. That check exists precisely so a smudged bar becomes a refusal rather than a wrong product.
- Assuming a scanned number is a product database lookup. This tool decodes the symbol; it does not know what the product is. The number is the identifier a retailer's own system would resolve.
Features
How to Use
1. Click 'Scan with camera' and allow camera access, or choose an image file. 2. Hold the barcode flat and square to the lens, filling the width of the aiming frame. 3. The camera stops automatically once a code is read. 4. Check the analysis — particularly that the check digit is reported as correct. 5. Copy the number, or use the lookup button for retail codes.
Frequently Asked Questions
Related Tools
Everything runs in your browser. Camera frames and chosen images are decoded in the page and never uploaded, nothing is stored, and the camera is switched off as soon as a barcode is read. Camera access requires a secure (HTTPS) connection — on an insecure page the image-file option still works. Where your browser provides BarcodeDetector it is used, since it is hardware-backed and covers more symbologies; otherwise a built-in scan-line decoder handles EAN, UPC, Code 128, Code 39 and ITF. This tool identifies the number encoded in a symbol; it does not look up product information.