Navigate:
~$ZXING0.0%

ZXing: Open-source barcode image processing library

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

LIVE RANKINGS • 06:52 AM • STEADY
OVERALL
#226
19
MOBILE & DESKTOP
#10
2
30 DAY RANKING TREND
ovr#226
·Mobil#10
STARS
33.8K
FORKS
9.4K
DOWNLOADS
283
7D STARS
+7
7D FORKS
0
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.


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

Maintenance release with stricter input validation, new luminance sources, and improved barcode detection accuracy.

  • PDF417 encoder now throws explicit exception when TEXT compaction receives characters outside 0–127 range.
  • Add GrayscaleLuminanceSource and 90-degree rotation support to RGBLuminanceSource for flexible image handling.
vzxing-3.5.3

Maintenance release fixing MaxiCode quiet zone handling, RSS Expanded false positives, and adding SJIS fallback for constrained platforms.

  • Remove forced content-length check in Code128Writer to allow longer payloads; update GS1 AI definitions to 2023 spec.
  • Handle platforms without SJIS encoding support and prevent CLI --raw crashes when getRawBytes() returns null.
vzxing-3.5.2

Restores compatibility with older JDKs and adds minor enhancements to Code 128 and PDF417 barcode formats.

  • Verify your JDK version if you previously encountered compatibility issues with older Java runtimes.
  • Review Code 128 and PDF417 decoding behavior for edge cases; release notes do not specify exact changes.


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers