Barcode Scanner
Decode a 1D or 2D barcode from an uploaded image or your live camera, entirely in your browser, with the detected format shown.
Tool guide
What this tool does
Barcode Scanner decodes barcodes (CODE128, EAN, UPC, CODE39 and other common 1D and 2D formats) from an uploaded image or a live camera feed using the ZXing library, entirely client-side with nothing uploaded anywhere, and reports both the decoded value and the detected barcode format.
Reading a barcode without a dedicated handheld scanner usually means finding a phone app, which is overkill for a one-off check of a product code, shipping label, or a barcode in a photo you already have.
This scanner decodes barcodes from either an uploaded image or your device’s live camera, running entirely in your browser via the ZXing library, with nothing uploaded to any server. It automatically detects which of several common 1D and 2D formats (CODE128, EAN, UPC, CODE39 and others) the barcode uses and reports both the decoded value and that format.
How to use Barcode Scanner
- Choose Upload an image or Use camera as the source.
- For an upload, choose an image file containing a barcode.
- For the camera, press Start camera and point it at a barcode.
- Read the Decoded content and its detected Format.
- Copy the decoded value for use elsewhere.
Tips for better results
- Nothing is ever uploaded anywhere; both the image file and the live camera feed are processed entirely within your own browser.
- For a photo-based scan, good lighting and a barcode that fills a reasonable portion of the frame, without excessive blur or glare, decode far more reliably than a distant or low-quality shot.
- The detected format (shown alongside the decoded value) confirms exactly which barcode standard was read, useful when you need to know the format itself, not just the value.
- If a live camera scan isn’t finding the code, try moving slightly closer or adjusting the angle to reduce glare on a glossy printed barcode.
Common use cases
- Reading a product barcode from a photo without a dedicated barcode scanner app.
- Decoding a shipping label or inventory barcode from an uploaded image.
- Checking what format and value a specific barcode encodes before using it elsewhere.
- Verifying your own generated barcodes decode correctly before printing them.
Common mistakes to avoid
- Uploading a heavily compressed or very low-resolution image, which can remove enough detail that the decoder can’t reliably distinguish the bars.
- Scanning a barcode at a steep angle or with significant glare, both of which reduce decode reliability for camera-based scanning in particular.
- Forgetting to grant camera permission when prompted, without which the live camera mode cannot function at all.
Frequently asked questions
Is the image or camera feed uploaded anywhere?
No, decoding happens entirely within your browser using the ZXing library; no image or camera frame is ever sent to a server.
What barcode formats are supported?
A wide range of common 1D and 2D formats including CODE128, EAN-13/EAN-8, UPC-A, CODE39 and others, automatically detected from the barcode itself without needing to specify the format in advance.
Why isn’t my camera scan finding the barcode?
Check lighting, focus and angle; a barcode with glare, blur, or that fills too small a portion of the camera frame is harder for any scanner to decode reliably.
Can I scan more than one barcode in a row?
Yes, after a successful camera scan completes, press Start camera again to scan another; for uploads, simply choose a new image file each time.
Feedback & suggestions
Help us improve Barcode Scanner. We read every message.