Barcode Reader
How to Use
📖 Tool Introduction
During stocktakes, listing work or price comparison, you often have only a product photo but need the barcode number. Copying a dozen digits by hand invites mistakes; letting the tool read it from a photo is faster.
This decodes one-dimensional product barcodes locally in the browser, covering the three most common retail symbologies: EAN-13, EAN-8 and UPC-A. It converts the image to greyscale, measures the run lengths of dark and light bars across several horizontal scan lines, normalizes them against the module width, then matches the patterns against the encoding tables and verifies the check digit.
Because decoding works per scan line, a barcode that sits sideways or upside down still has a chance: enabling rotation tries all four orientations in turn. The matched scan line is drawn in green over the preview so you can confirm the reading came from the right place.
Images are processed locally and never uploaded, so photos containing internal product data are safe to decode.
✨ Features
- Supports EAN-13, EAN-8 and UPC-A, the common retail symbologies.
- Lock a specific symbology or leave it on auto to reduce false positives.
- Adjustable scan line count: more lines raises the success rate and lowers speed.
- Tries rotations of 0, 90, 180 and 270 degrees, so vertical barcodes are readable.
- Verifies the check digit and states plainly whether it passed.
- Draws the matched scan line in green on the preview for visual confirmation.
- One-click copy of the decoded number straight into a spreadsheet or system.
- Adaptive greyscale and thresholding handles unevenly lit photos.
- Fully client-side decoding; images never leave your device.
- Failures are reported clearly rather than returning a guess.
🚀 How to Use
- Press choose image, or drag a file into the dashed area.
- Optionally select a symbology, or leave it on auto if unsure.
- Adjust the scan line count, raising it for skewed or blurry barcodes.
- Press decode and wait for the result.
- Confirm the check digit passes, then copy the code where you need it.
⚠️ Notes
- Only three symbologies:Coverage is limited to EAN-13, EAN-8 and UPC-A. Code128, Code39 and other industrial codes are not supported.
- Barcodes must be reasonably clean:Heavy blur, glare, curvature or tiny barcodes decode poorly. Shoot them straight and sharp.
- Arbitrary skew fails:Rotation tries only the four orthogonal orientations; unusual angles need straightening first.
- Verify failed checksums manually:A failed check digit means the result may be wrong; trust the printed number under the barcode.
- Large images are downscaled:The preview is scaled proportionally, which can cost detail on very fine barcodes.
- Use a QR tool for QR codes:This reads one-dimensional barcodes only; use a QR decoder for QR images.
Supported symbologies and limitations
- Symbologies: EAN-13, EAN-8, UPC-A, Code 128 and Code 39 are recognised; Interleaved 2 of 5 and Codabar are decoded on a best-effort basis.
- Improve a failed read: crop tightly around the bars, raise contrast, and avoid heavy JPEG artefacts, then upload again.
Privacy and compatibility
- Nothing is uploaded: decoding runs entirely inside your browser, so product codes, inventory lists and price data never leave your device.
- Browser support: a current version of Chrome, Edge, Firefox or Safari is required. Very large images are downscaled for the preview so the interface stays responsive.