pypi zxing-cpp 3.0.0
v3.0.0

9 hours ago

Important:

The automatically created "Source Code" zip and tar.gz files are broken and can't be fixed (GitHub limitation regarding git submodules). If you need this, please download the attached zxing-cpp-3.0.0.zip or zxing-cpp-3.0.0.tar.gz file.

Major changes:

  • New creator/writer API (moved out of experimental state) with lots of improvements and fine-tuning
  • New BarcodeFormat and BarcodeFormats implementation, with minor changes in API
    • New meta barcode formats like All, AllReadable, AllRetail, etc.
    • New human readable names from ToString(format), e.g. EAN-13 instead of EAN13
    • Added concept of Symbology to Barcode, e.g. QRCode == QRCodeModel2, MicroQRCode, RMQRCode
    • The C-API suffered a hard break to accommodate the bit-field to array switch of the BarcodeFormats
  • CreatorOptions now has a JSON (key-value pair) pair based options parameter
  • C++20 is now a build requirement for the library, the client side API is still c++17 compatible
  • Cleaned up number of included headers, new single source ZXingCpp.h header
  • MultiFormatWriter: deprecate use of old writer API
  • New Barcode::extra() API that returns symbology specific extra information as JSON string, e.g. "EcLevel"
  • Add cmake flags to remove individual barcode formats from the build (smaller lib for wasm or embedded applications)
  • publish native ARM python wrapper binaries
  • New header only Qt6 API (ZXingQt.h) with support for multiple barcodes and new writer API
  • New ZXingQtCamReader demo based on QWidgets with proper macOS support

Minor improvements and bug fixes

  • QRCode: improve detection rate for circular finder patterns
  • DataBar: fix inconsistency / plain spec violation (missing "(01)" prefix)
  • EAN/UPC: return 13-digit numbers for UPC-A/E as required by standard
  • Improved quiet zone handling for ITF
  • QRCode: fix decoding of Model 1 symbols with more than 1 data block
  • Content: modify bytesECI() to behave like a standard reader w.r.t. ECIs
  • WriteBarcode: automatic GS1PARENS_MODE
  • python: add ImageView class and ImageFormat enum as custom memoryview
  • python: add experimental support to read_barcodes from QtGui.QImage
  • ZXingReader: add experimental -denoise command line option
  • Code39: improve detection for 4x difference between wide and narrow and lower quiet-zone requirements
  • python: remove 3.9 and add 3.14 packages
  • Content: improve auto-detection of charaset/eci info
  • make installed binaries relocatable on macOS and Linux
  • dotnet: implement IDisposable for the Barcode and Options classes and add XML documentation
  • ReaderOptions: new validateOptionalCheckSum property replacing the Code39 and ITF specific ones
  • ReaderOptions: deprecated the tryCode39ExtendedMode property (use new BarcodeFormat::Code39Ext)
  • Expose structure append metadata via C API by @magethle in #950
  • Add experimental tryDenoise to C API by @magethle in #952
  • AZDecoder: minor fixes by @gitlost in #917
  • Use 16 KB page size alignment on 64-bit Androids by @markusfisch in #1001
  • Remove ZXing path from include path by @fnadeau in #924
  • try denoise for android wrapper by @toktarov84 in #1035
  • Improvements to Qt/QML interface by @m7913d in #945

Plus a whole bunch of minor fixes and improvements by lots of people.

New Contributors

Sponsors

Thanks to all 'new' and 'old' contributors, named here in random order:

Full Changelog: v2.3.0...v3.0.0

Don't miss a new zxing-cpp release

NewReleases is sending notifications on new releases.