Upload an image, photo, or screenshot to scan and decode 1D barcodes. Read EAN, UPC, Code 128, Code 39, and more with instant check digit verification.
Linear one-dimensional (1D) barcodes represent alphanumeric data via precise sequences of dark bars and light spaces. When an image is uploaded, ZechKit's multi-pass decoder performs several computer vision stages:
For retail barcodes (EAN-13, EAN-8, UPC-A, ITF-14), our engine calculates the expected GS1 Modulo-10 check digit:
$$\text{Check Digit} = \left(10 - \left(\sum_{i=1}^{n} d_i \times w_i \pmod{10}\right)\right) \pmod{10}$$
Important Note: A mathematically valid check digit verifies that the barcode was read accurately and follows ISO format rules. However, valid barcode structure does not automatically guarantee official product registration with GS1. Businesses must consult authorized GS1 databases to confirm commercial brand assignment.
Scenario: A retailer takes a picture of a product box and uploads the photo to verify the GTIN and check digit.
Image: product_packaging.jpg · Format: EAN-13
Decoded Value: 5901234123457 · Check Digit: 7 (Valid) · Symbology: EAN-13 (GTIN-13)
Locates the barcode on the package, verifies the 13th Modulo-10 check digit, and enables 1-click web searching.
Scenario: A warehouse clerk takes a screenshot of an electronic invoice containing a Code 128 shipping tracking code.
Screenshot: invoice_crop.png (Ctrl+V pasted) · Format: Code 128
Decoded Value: INV-2026-00124 · Symbology: Code 128 · Char Count: 14
Decodes the high-density alphanumeric string instantly from the pasted screenshot and copies it to the clipboard.
Create Code 128, EAN-13, UPC-A, Code 39, and ITF barcodes online.
Scan and decode QR codes from photos and screenshots 100% in-browser.
Create customizable QR codes for URLs, Wi-Fi, contacts, and menus.
Create printable Wi-Fi QR codes and signs for guest access.
Compress PNG, JPG, and WebP images locally in browser memory.