Navigate:
~$ZXING0.0%

ZXing: Open-source barcode image processing library

Multi-format 1D/2D barcode decoder in Java.

LIVE RANKINGS • 10:20 AM • STEADY
OVERALL
#392
32
DEVELOPER TOOLS
#83
5
30 DAY RANKING TREND
ovr#392
·Devel#83
STARS
33.9K
FORKS
9.4K
7D STARS
+10
7D FORKS
-3
See Repo:
Share:

Learn more about ZXing

ZXing is an open-source barcode image processing library implemented primarily in Java that provides multi-format detection and decoding capabilities for both one-dimensional and two-dimensional barcode symbologies. The library employs image analysis algorithms that process bitmap data to locate barcode patterns within images, then applies format-specific decoding logic to extract the encoded information. It supports a comprehensive range of barcode standards including linear formats such as UPC, EAN, Code 39, Code 128, and Codabar, as well as two-dimensional matrix codes including QR Code, Data Matrix, Aztec, and PDF 417. The core decoding engine is architected as a standalone module that can be integrated into platform-specific implementations, with the project historically providing native ports for Android, JavaSE, C++, Objective-C, and JavaScript environments.

ZXing

1

Multi-Format Barcode Detection

Decodes 1D barcodes (UPC, EAN, Code 128) and 2D matrix codes (QR, Data Matrix, Aztec) from bitmap data using image analysis algorithms. Handles multiple encoding standards in a single library without external dependencies.

2

Modular Core Architecture

Core decoding logic operates independently from platform code, enabling integration into pure Java applications or server environments. Android and JavaSE modules provide optional platform-specific features while maintaining separation from core algorithms.

3

Maintenance Mode Stability

Mature codebase focused on reliability and bug fixes rather than feature expansion. Accepts community patches for minor enhancements while maintaining stable APIs for production deployments.


import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import javax.imageio.ImageIO;

BufferedImage image = ImageIO.read(new File("qrcode.png"));
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

Result result = new MultiFormatReader().decode(bitmap);
System.out.println("Decoded text: " + result.getText());

vzxing-3.5.4

Bug fixes for barcode readers with improved validation and error handling.

  • Fix container inefficiency in RSSExpandedReader.java
  • Fix SYMBOLOGY_IDENTIFIER Loss in QRCodeMultiReader to ensure data integrity
  • Be more stringent on email validation rules
  • PDF417: Check input chars 0-127 for TEXT compaction, throw explicit exception if not
  • Various bug fixes and improvements
vzxing-3.5.3

Improved barcode detection accuracy with fixes for MaxiCode, RSS Expanded, and Code128.

  • Fix MaxiCode handling of vertical quiet zone
  • Remove forced content limit check for Code128Writer.java
  • Detect RSS Expanded finder pattern false positives by checking sequences
  • Update GS1 AIs according to 2023 specification
  • Prevent --raw CLR option from failing if result.getRawBytes() is null
vzxing-3.5.2

Minor enhancements for Code 128 and PDF417 with restored compatibility for older JDKs.

  • Minor enhancements for Code 128 and PDF417
  • Restore compatibility with older JDKs


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers