Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

python-zxing

PyPI Build Status License: LGPL v3

This is a wrapper for the ZXing barcode library. It will allow you to read and decode barcode images from Python.

It was originally a "slightly less quick-and-dirty" fork of oostendo/python-zxing, but has since evolved considerably beyond that ancestral package.

Dependencies and installation

Use the Python 3 version of pip (usually invoked via pip3) to install: pip3 install zxing

  • You'll neeed to have a recent java binary somewhere in your path. (Tested with OpenJDK v7, v8, v11.)
  • pip will automatically download the relevant JAR files for the Java ZXing libraries (currently v3.5.3)

Usage

The BarCodeReader class is used to decode images:

>>> import zxing
>>> reader = zxing.BarCodeReader()
>>> print(reader.zxing_version, reader.zxing_version_info)
3.5.1 (3, 5, 1)
>>> barcode = reader.decode("test/barcodes/QR_CODE-easy.png")
>>> print(barcode)
BarCode(raw='This should be QR_CODE', parsed='This should be QR_CODE', path='test/barcodes/QR_CODE-easy.png', format='QR_CODE', type='TEXT', points=[(15.0, 87.0), (15.0, 15.0), (87.0, 15.0), (75.0, 75.0)])

The attributes of the decoded BarCode object are raw, parsed, path, format, type, points, and raw_bits. The list of formats which ZXing can decode is here.

The decode() method accepts an image path or PIL Image object (or list thereof) and takes optional parameters try_harder (boolean), possible_formats (list of formats to consider), and pure_barcode (boolean). If no barcode is found, it returns a False-y BarCode object with all fields except path set to None. If it encounters any other recognizable error from the Java ZXing library, it raises BarCodeReaderException.

Command-line interface

The command-line interface can decode images into barcodes and output in either a human-readable or CSV format:

usage: zxing [-h] [-c] [--try-harder] [--pure-barcode] [-V] image [image ...]

Human-readable:

$ zxing /tmp/barcode.png
/tmp/barcode.png
================
  Decoded TEXT barcode in QR_CODE format.
  Raw text:    'Testing 123'
  Parsed text: 'Testing 123'

CSV output (can be opened by LibreOffice or Excel):

$ zxing /tmp/barcode1.png /tmp/barcode2.png /tmp/barcode3.png
Filename,Format,Type,Raw,Parsed
/tmp/barcode1.png,CODE_128,TEXT,Testing 123,Testing 123
/tmp/barcode2.png,QR_CODE,URI,http://zxing.org,http://zxing.org
/tmp/barcode3.png,QR_CODE,TEXT,"This text, ""Has stuff in it!"" Wow⏎Yes it does!","This text, ""Has stuff in it!"" Wow⏎Yes it does!"

License

LGPLv3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zxing-1.0.4.tar.gz (696.6 kB view details)

Uploaded Source

File details

Details for the file zxing-1.0.4.tar.gz.

File metadata

  • Download URL: zxing-1.0.4.tar.gz
  • Upload date:
  • Size: 696.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zxing-1.0.4.tar.gz
Algorithm Hash digest
SHA256 e588c7001f8d2f0f938f4066fa4270f29f641fd520f4f662620545d3fd72ae1a
MD5 1996ce8e871aae78d2e577f1c6377c32
BLAKE2b-256 f86bfeb86fa135a34379cad65cd9c939f44485a104c63468e33964e13102ea16

See more details on using hashes here.

Provenance

The following attestation bundles were made for zxing-1.0.4.tar.gz:

Publisher: test_and_release.yml on dlenski/python-zxing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.4 This release

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

2 files

1.0

2 files

0.14

2 files

0.13

1 file

0.12

1 file

0.11

1 file

0.10

1 file

0.9.3

1 file

0.9.2

1 file

0.9.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page