Generate a barcode in the format you need and download it as a PNG, or scan an existing barcode with your camera or an uploaded photo.
This tool generates barcodes in nine common formats directly in your browser, using the open-source JsBarcode library — nothing is uploaded to a server. Pick a format, type a value, and download the result as a PNG for labels, packaging, or inventory sheets.
The scan tab reads barcodes back using your device camera or an uploaded photo, decoding the value client-side with the ZXing library.
CODE128 is the most flexible choice for general-purpose labelling since it supports letters, numbers, and symbols. EAN-13, EAN-8, and UPC-A are the standard formats used on retail packaging and require a fixed digit count. ITF-14 is common on shipping cartons, while CODE39, MSI, Pharmacode, and Codabar cover inventory, pharmaceutical, and logistics use cases.
Do I need an internet connection after the page loads? The barcode and scanning libraries load once from a CDN; after that, generation and scanning happen locally in your browser.
Why does my value get rejected in EAN-13 or UPC-A? These retail formats expect an exact digit count (12–13 digits for EAN-13, 11–12 for UPC-A) — the error message will tell you what the format expects.