Barcode Scanner
Scan and decode barcodes and QR codes using your camera or an uploaded image. Supports EAN, UPC, Code 128, Code 39, QR, and more.
Point your camera at a barcode or QR code
Decode 1D and 2D barcodes from a live camera feed or an image file. Supports EAN-8, EAN-13, UPC-A, UPC-E, Code 128, Code 39, ITF, QR Code, Data Matrix, Aztec, PDF417, and more. The decoded text and format name appear instantly, with a one-click copy. All decoding runs in your browser via the ZXing library.
Barcode readers typically require a dedicated app or a physical scanner. This tool lets you use your device camera or any image file to decode the most common 1D and 2D barcode formats without installing anything. The ZXing decoder runs entirely client-side, so nothing leaves your browser during the process.
Camera mode starts the rear-facing camera (or your webcam on a laptop) and continuously scans each frame. When a barcode is recognized, the camera stops and the decoded text appears along with the format name. Switching to the upload tab or clicking Stop will always release the camera light. For image uploads, the library attempts to locate and decode the barcode anywhere in the frame, even on low-contrast or slightly rotated codes.
Format coverage includes the entire ZXing library set: EAN-8, EAN-13, UPC-A, UPC-E, Code 128, Code 39, Code 93, Codabar, ITF, QR Code, Data Matrix, Aztec, PDF417, and MaxiCode. If the decoded text is a URL, a safe clickable link is displayed so you can open it deliberately without any auto-redirect.
- 1
Choose camera or upload
Select the Camera tab to scan with your device camera, or the Upload tab to decode a barcode from a saved image file.
- 2
Scan or load the barcode
In camera mode, click Start camera and point it at the barcode. The tool scans each frame and stops automatically when a code is found. In upload mode, pick any image and the decoder runs once.
- 3
Copy or follow the result
The decoded text and format are shown immediately. Click Copy to put the text on your clipboard. If it is a URL, a safe link appears that you can open when ready.
Check a product barcode
Scan a retail EAN-13 or UPC-A barcode to read the number for price lookup or inventory tracking.
Decode a QR code from a screenshot
Upload a screenshot containing a QR code to extract the embedded URL or text without a phone app.
Read shipping label barcodes
Point your camera at a Code 128 or ITF barcode on a shipping label to capture the tracking number instantly.
Verify a generated barcode
After creating a barcode with the Barcode Generator tool, scan or upload it here to confirm the encoded value is correct.
Is my image or camera feed uploaded anywhere?
No. All decoding happens in your browser using the ZXing library. Camera frames and uploaded images are processed locally and never sent to any server.
Which barcode formats does this support?
EAN-8, EAN-13, UPC-A, UPC-E, Code 128, Code 39, Code 93, Codabar, ITF, QR Code, Data Matrix, Aztec, PDF417, and MaxiCode. The ZXing library handles all of these automatically.
Why does camera access require HTTPS?
Browsers restrict camera access to secure contexts (HTTPS or localhost) as a security measure. If you see a camera error, check that you are on the HTTPS version of the site.
What if my image barcode is not detected?
Make sure the barcode is not blurry, heavily cropped, or at an extreme angle. Try a higher-resolution photo, or take a fresh photo with better lighting.
Can this read barcodes from PDFs or documents?
Take a screenshot of the page that contains the barcode, then upload the screenshot image. PDF files are not accepted directly.