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
BarcodeFormatandBarcodeFormatsimplementation, with minor changes in API- New meta barcode formats like
All,AllReadable,AllRetail, etc. - New human readable names from
ToString(format), e.g.EAN-13instead ofEAN13 - 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
- New meta barcode formats like
CreatorOptionsnow has a JSON (key-value pair) pair basedoptionsparameter- 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.hheader - 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
ZXingQtCamReaderdemo 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
validateOptionalCheckSumproperty replacing the Code39 and ITF specific ones - ReaderOptions: deprecated the
tryCode39ExtendedModeproperty (use newBarcodeFormat::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
- @MonkeybreadSoftware made their first contribution in #889
- @mgorny made their first contribution in #902
- @Xie-Long-0 made their first contribution in #933
- @m7913d made their first contribution in #938
- @magethle made their first contribution in #950
- @samuelcolvin made their first contribution in #957
- @HoratiuMarginean made their first contribution in #967
- @maxksielaff made their first contribution in #969
- @wooyechan made their first contribution in #972
- @dantti made their first contribution in #975
- @caolanm made their first contribution in #979
- @brlin-tw made their first contribution in #980
- @nift4 made their first contribution in #988
- @dependabot[bot] made their first contribution in #993
- @wizard97 made their first contribution in #1003
- @chamalgomes made their first contribution in #1014
- @fnadeau made their first contribution in #924
- @toktarov84 made their first contribution in #1035
- @CHC383 made their first contribution in #1041
Sponsors
Thanks to all 'new' and 'old' contributors, named here in random order:
- EUREKAM
- @SAP
- @kurzdigital
- @moonshine-ai
- @somcosoftware
Full Changelog: v2.3.0...v3.0.0