Scan and decode EAN, UPC, CODE128 and other barcodes from an image, right in your browser β no upload, no app.
Drop a barcode image here or click to browse
PNG, JPG, WebP, GIF, BMP Β· EAN, UPC, CODE128, QR and more Β· No upload
This tool uses the open-source ZXing ("Zebra Crossing") library β the same engine behind many Android barcode scanner apps β to locate and decode barcodes directly inside your browser. Your image is drawn onto an invisible HTML Canvas element, the pixel data is extracted with getImageData(), and passed to the ZXing decoder entirely without any network request.
You can also use the Camera tab to scan a physical barcode in real time. The camera feed is processed frame by frame in JavaScript β nothing is uploaded or recorded.
Standard retail barcode for products sold outside North America
Standard North American retail barcode (12 digits)
Compact retail barcode for small packaging
Compressed UPC for small packages
High-density alphanumeric barcode for shipping and logistics
Alphanumeric barcode widely used in automotive and defense
Interleaved Two of Five β used on shipping cartons (ITF-14)
2D matrix code for URLs, Wi-Fi, text and contact data
Look up a product barcode
Photograph a product and upload the image to instantly extract the EAN-13 or UPC-A number for database lookup or price checking.
Decode a barcode from a screenshot
Received an image with a barcode you cannot scan physically? Upload the screenshot and get the decoded value in seconds.
Verify a label barcode
After printing product labels, upload a photo of the printed barcode to verify it decodes to the correct value before shipping.
Scan shipping labels
Extract the CODE128 tracking number from a shipping label photo without needing a physical scanner device.
Which barcode formats can it read?
The tool supports all common 1D and 2D barcode formats: EAN-13, EAN-8, UPC-A, UPC-E, CODE128, CODE39, CODE93, ITF, Codabar, QR Code, Data Matrix, Aztec, and PDF-417. It uses the open-source ZXing library ('Zebra Crossing') which is the same engine used by many Android apps.
Does the image get uploaded to a server?
No. Your image is decoded entirely in your browser using the open-source ZXing library. Nothing is ever sent to any server. The file never leaves your device.
Why is no barcode found in my image?
Common reasons: the barcode is blurry, too small, or at an angle. The image may have glare, or the barcode is partially obstructed. Try cropping the image tightly around the barcode and re-uploading. Make sure the image is sharp and well-lit.
Can it scan a barcode from a photo of a product?
Yes. Take a photo of the product barcode, upload it here, and the tool will decode the EAN-13 or UPC-A value. For best results, make sure the barcode fills most of the image frame and is in focus.
Can I scan barcodes with my phone camera?
Yes. Switch to the 'Scan with Camera' tab. The tool accesses your device camera (with your permission), scans the live video feed frame by frame, and stops automatically as soon as a barcode is detected. No video is recorded or uploaded.
What image formats are supported?
PNG, JPG/JPEG, WebP, GIF, and BMP are supported. The maximum file size is 20 MB. HEIC files from iPhones may need to be converted to JPG first.