Encoders & Converters

Barcode Generator & Reader — Code 128, EAN, UPC, Code 39 & ITF

Generate validated 1D barcodes as PNG files and decode barcode images locally in your browser. Supports Code 128, EAN-13, UPC-A, Code 39, and ITF.

Free to use No sign-up Runs in your browser

Tool workspace

What Is a 1D Barcode Generator and Reader?

This browser tool creates standards-based linear barcodes with bwip-js and reads uploaded barcode images with ZXing. It validates format-specific rules before rendering, including EAN-13 and UPC-A check digits, Code 39 character restrictions, and ITF digit pairing. Uploaded images and generated graphics stay in your browser.

How to Generate or Read a Barcode

  1. 1Choose Code 128, EAN-13, UPC-A, Code 39, or ITF and enter the value to encode.
  2. 2Correct any validation message, then adjust scale, bar height, and human-readable text.
  3. 3Download the rendered barcode as a PNG for labels, documents, or test fixtures.
  4. 4Switch to Read, upload a clear barcode image, and copy the value decoded by ZXing.

Common Barcode Workflows

Retail identifier checks

Validate EAN-13 or UPC-A check digits and create scannable product-code test images.

Warehouse and inventory labels

Generate Code 128, Code 39, or ITF labels for internal inventory and integration testing.

Decode screenshots and photos

Extract the encoded value from a barcode image without uploading it to a remote scanning service.

Frequently asked questions

Can I enter EAN-13 or UPC-A without the check digit?

Yes. Enter 12 digits for EAN-13 or 11 digits for UPC-A and the tool calculates the final check digit. If you include it, the tool verifies it.

Why will my Code 39 value not render?

Standard Code 39 uses uppercase letters, digits, spaces, and the symbols hyphen, period, dollar, slash, plus, and percent. Lowercase input is normalized to uppercase.

Are uploaded barcode images sent anywhere?

No. ZXing decodes the selected image locally in your browser.