Zxing-cpp

Latest version: v2.3.0

Safety actively analyzes 698854 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

2.3.0

Shiny new stuff (more than I was aware of, after all this time...)
* Add support for DX Film Edge read by Merinorus in https://github.com/zxing-cpp/zxing-cpp/pull/684
* Add support for detecting and reading Aztec Runes by gormster in https://github.com/zxing-cpp/zxing-cpp/pull/763
* Add reader support for `DataBarLimited` symbols (sponsored by EUREKAM)
* Add C-API in official build
* Add Kotlin/Native Wrapper by ISNing in https://github.com/zxing-cpp/zxing-cpp/pull/719
* Add Rust wrapper based on C-API
* Add .NET wrapper based on C-API
* Introduce new name `Barcode` for `Result` which will be removed in 3.0
* LocalAverage binarizer: re-implement with symmetric threshold interpolation for improved detection of inverted symbols
* cmake: replace `BUILD_...` prefix of cmake options with `ZXING_...`
* cmake: switch to c++-20 by default for the core library
* ImageView: introduce bounds checks in constructor
* ImageView: Add ImageFormat::LumX for 2-byte grey + alpha input
* ImageFormat: replace 'X' with 'A', e.g. RGBX -> RGBA
* ZXingReader: add -binarizer <local|global|fixed> command line option
* ZXingReader: add -single option to setMaxNumberOfSymbols(1)
* ZXingReader: parse -formats (including 's') command line argument
* ZXingReader: support reading image file from stdin by passing '-'
* android: switch 'namespace' from `zxingcpp` to `zxingcpp.lib` to fix issue with maven central publication
* Python: add support to write `bytes` as binary data
* `ZXing::Version()` function to query the library version at runtime (useful when dynamically linked)

New experimental API (cmake option `-DZXING_EXPERIMENTAL_API=ON`)
* New experimental Create+Write API for generating/writing barcodes (will replace MultiFormatWriter)
* New experimental libzint based writer backend
* New `ImageView Barcode::symbol()` property
* New experimental writer API in python

Minor changes and bug fixes
* Complete ZXIReaderOptions in iOS Wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/692
* ios: remove initWithFormats initializer by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/723
* cmake: Make build reproducible across different build directories by EchterAgo in https://github.com/zxing-cpp/zxing-cpp/pull/730
* Release color space after use in iOS wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/790
* cmake: allow overriding python install directories by jameshilliard in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Refine MultiFormatReader results filtering and apply C++20 `erase_if` by Doekin in https://github.com/zxing-cpp/zxing-cpp/pull/846
* HRI: update AIs to latest gs1-syntax-dictionary.txt by gitlost in https://github.com/zxing-cpp/zxing-cpp/pull/880
* android: add linker flag to support flexible page sizes in Android 15 by ccrowell-kr in https://github.com/zxing-cpp/zxing-cpp/pull/872
* Deprecate `validateITFCheckSum`, `validateCode39CheckSum`, `returnCodabarStartEnd`
* BitHacks: fix random QRCode content on pre-Haswell Windows machines
* DataMatrix: improve detection of near 45° rotated symbols
* cmake: add /utf-8 to MSVC compile flags
* Barcode: tune operator==() to not split up overly tall linear symbols
* Several ITFReader improvements
* QRDecoder: return some content even in the presence of a checksum error
* DataBar: improve detection rate by incorporating edge-2-edge pattern
* PDF417: prevent wrong position info with right side collapsing to (0,0)
* Python: make sure macOS and 64bit Linux packes on pypi.org support multi-symbol DataMatrix detection (c++20 support)

New Contributors
* Merinorus made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/684
* ISNing made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/718
* hha1501 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/747
* gormster made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/763
* 549393092 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/777
* bindreams made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/787
* johngladp made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/808
* jameshilliard made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Doekin made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/846
* spageektti made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/858
* stbergmann made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/864
* ccrowell-kr made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/872
* GUIEEN made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/877

Sponsors

Thanks a lot for all 'old' and 'new' sponsors, listed here in alphabetical order:
* EUREKAM
* ikapoz
* kurzdigital
* nahojjjen
* usefulsensors
* wcjohns

**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v2.2.1...v2.3.0

2.3.0rc1

Shiny new stuff (more than I was aware of, after all this time...)
* Add support for DX Film Edge read by Merinorus in https://github.com/zxing-cpp/zxing-cpp/pull/684
* Add support for detecting and reading Aztec Runes by gormster in https://github.com/zxing-cpp/zxing-cpp/pull/763
* Add reader support for `DataBarLimited` symbols (sponsored by EUREKAM)
* Add C-API in official build
* Add Kotlin/Native Wrapper by ISNing in https://github.com/zxing-cpp/zxing-cpp/pull/719
* Add Rust wrapper based on C-API
* Add .NET wrapper based on C-API
* Introduce new name `Barcode` for `Result` which will be removed in 3.0
* LocalAverage binarizer: re-implement with symmetric threshold interpolation for improved detection of inverted symbols
* cmake: replace `BUILD_...` prefix of cmake options with `ZXING_...`
* cmake: switch to c++-20 by default for the core library
* ImageView: introduce bounds checks in constructor
* ImageView: Add ImageFormat::LumX for 2-byte grey + alpha input
* ImageFormat: replace 'X' with 'A', e.g. RGBX -> RGBA
* ZXingReader: add -binarizer <local|global|fixed> command line option
* ZXingReader: add -single option to setMaxNumberOfSymbols(1)
* ZXingReader: parse -formats (including 's') command line argument
* ZXingReader: support reading image file from stdin by passing '-'
* android: switch 'namespace' from `zxingcpp` to `zxingcpp.lib` to fix issue with maven central publication
* Python: add support to write `bytes` as binary data

New experimental API (cmake option `-DZXING_EXPERIMENTAL_API=ON`)
* New experimental Create+Write API for generating/writing barcodes (will replace MultiFormatWriter)
* New experimental libzint based writer backend
* New `ImageView Barcode::symbol()` property
* New experimental writer API in python

Minor changes and bug fixes
* Complete ZXIReaderOptions in iOS Wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/692
* ios: remove initWithFormats initializer by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/723
* cmake: Make build reproducible across different build directories by EchterAgo in https://github.com/zxing-cpp/zxing-cpp/pull/730
* Release color space after use in iOS wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/790
* cmake: allow overriding python install directories by jameshilliard in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Refine MultiFormatReader results filtering and apply C++20 `erase_if` by Doekin in https://github.com/zxing-cpp/zxing-cpp/pull/846
* HRI: update AIs to latest gs1-syntax-dictionary.txt by gitlost in https://github.com/zxing-cpp/zxing-cpp/pull/880
* android: add linker flag to support flexible page sizes in Android 15 by ccrowell-kr in https://github.com/zxing-cpp/zxing-cpp/pull/872
* Deprecate `validateITFCheckSum`, `validateCode39CheckSum`, `returnCodabarStartEnd`
* BitHacks: fix random QRCode content on pre-Haswell Windows machines
* DataMatrix: improve detection of near 45° rotated symbols
* cmake: add /utf-8 to MSVC compile flags
* Barcode: tune operator==() to not split up overly tall linear symbols
* Several ITFReader improvements
* QRDecoder: return some content even in the presence of a checksum error
* DataBar: improve detection rate by incorporating edge-2-edge pattern
* PDF417: prevent wrong position info with right side collapsing to (0,0)
* Python: make sure macOS and 64bit Linux packes on pypi.org support multi-symbol DataMatrix detection (c++20 support)

New Contributors
* Merinorus made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/684
* ISNing made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/718
* hha1501 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/747
* gormster made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/763
* 549393092 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/777
* bindreams made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/787
* johngladp made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/808
* jameshilliard made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Doekin made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/846
* spageektti made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/858
* stbergmann made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/864
* ccrowell-kr made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/872
* GUIEEN made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/877

Sponsors

Thanks a lot for all 'old' and 'new' sponsors, listed here in alphabetical order:
* EUREKAM
* ikapoz
* kurzdigital
* nahojjjen
* usefulsensors
* wcjohns

**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v2.2.1...v2.3.0

2.2.1

I accidentally broke c++ ABI compatibility between 2.1.0 and 2.2.0. This is fixed [here](https://github.com/zxing-cpp/zxing-cpp/commit/d3a8d5f793ed0c32e53283ccf079f390780491a0). This release is only of relevance for package maintainers caring about ABI stability of MINOR version changes according to semantic versioning. None of the wrappers are effected by this change and hence will not be released as 2.2.1.

DISCLAMER: Unfortunately, it turned out that the above mentioned fix for the c++ ABI can break your build if you have some kind of globally enabled pre-compiled-header setup, like apparently in libreoffice (see 685). In that case, either disable pre-compiled-headers or use 2.2.0.

Full Changelog: https://github.com/zxing-cpp/zxing-cpp/compare/v2.2.0...v2.2.1

EDIT: added `test_samples.tar.gz` containing the `test/samples/` subfolder. See [this discussion](https://github.com/zxing-cpp/zxing-cpp/issues/312#issuecomment-2304326466).

2.2.0

WARNING: I accidentally broke c++ ABI compatibility between 2.1.0 and 2.2.0. This is fixed [here](https://github.com/zxing-cpp/zxing-cpp/commit/d3a8d5f793ed0c32e53283ccf079f390780491a0). There will likely be a 2.2.1 patch release. If you are packaging this software for distribution, you might want to skip packaging this version or make sure the above patch is applied in your build. For all the wrapper code, this has no impact whatsoever. Please join the [discussion](https://github.com/zxing-cpp/zxing-cpp/discussions/683) if you have comments regarding the situation.

Major Changes
This release is mostly about the Python, Android and iOS wrappers. The latter 2 have changed considerably to have an API that is more in line with each other and with the core c++ library. The changes will most likely break existing app code but set a proper foundation for the future.

* Python:
* Multithreading Support via GIL by billmccartney in https://github.com/zxing-cpp/zxing-cpp/pull/616
* Remove numpy requirement, use buffer protocol instead by EchterAgo in https://github.com/zxing-cpp/zxing-cpp/pull/615
* Support sliced numpy arrays
* Expose return_errors parameter to Python wrapper APIs. by gregtws in https://github.com/zxing-cpp/zxing-cpp/pull/618
* Expose Result::ecLevel method as python property by marcoffee in https://github.com/zxing-cpp/zxing-cpp/pull/600
* Build wheels for Python 3.12. by dainnilsson in https://github.com/zxing-cpp/zxing-cpp/pull/625
* Android:
* Android wrapper: Modernize build files by okarmazin in https://github.com/zxing-cpp/zxing-cpp/pull/619
* Fix permissions on Android R+ by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/656
* Android wrapper improvements by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/659
* android: add consumerProguardFiles by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/660
* android: Fix build with NDK 26 by michaelweghorn in https://github.com/zxing-cpp/zxing-cpp/pull/674
* Build with C++20 (improved DataMatrix detection) by default
* Don't `close()` the `ImageProxy` inside `read()` anymore, need to do that outside now (this breaks existing code)
* Change package name from `com.zxingcpp` to simply `zxingcpp` (breaking change)
* publish library on mavenCentral for lowest possible barrier of entry
* iOS/macOS:
* iOS Wrapper improvements by benjohnde in https://github.com/zxing-cpp/zxing-cpp/pull/630
* iOS wrapper: Add functionality of encoding binary data into Barcodes by alexmanzer in https://github.com/zxing-cpp/zxing-cpp/pull/635
* Rename ZXingCppWrapper to ZXingCpp by alexmanzer in https://github.com/zxing-cpp/zxing-cpp/pull/638
* iOS: Enable CocoaPods by providing a podspec by benjohnde in https://github.com/zxing-cpp/zxing-cpp/pull/637
* Build with C++20 (improved DataMatrix detection) by default
* ios: specify EC level/margin for generation by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/644
* ios: expose all native result items in wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/649
* ios: clean up ZXIDecodeHints by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/652
* ios: use a default error text instead of crashing by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/661
* ios: improve exception handling by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/664
* ios: rename `ZXIDecodeHints` to `ZXIReaderOptions`

* General:
* Rename `DecodeHints` to `ReaderOptions`. The old name is still available for backward API compatibility but deprecated. Since the C-API and the Qt wrapper code are not officially part of the library, they changed without backward compatibility.
* WASM: bytes in `ReadResult` by Sec-ant in https://github.com/zxing-cpp/zxing-cpp/pull/588
* DataMatrix: use charset for encoding by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/628
* QRCode: Support QR Code Model1 by sayzzy-nt in https://github.com/zxing-cpp/zxing-cpp/pull/633
* rMQR Code: Support Rectangular Micro QR Code by gitlost in https://github.com/zxing-cpp/zxing-cpp/pull/681

Minor Changes and Fixes
* Fix QT 6 QML Crash & Enable QML Shape by LeonnardoVerol in https://github.com/zxing-cpp/zxing-cpp/pull/597
* Python: Fix wrapper build on MSVC not having __cplusplus for BitHacks by EchterAgo in https://github.com/zxing-cpp/zxing-cpp/pull/613
* Correctly handle supported image formats on Android APIs < 23 by okarmazin in https://github.com/zxing-cpp/zxing-cpp/pull/622
* Add `DecodeHints.setMaxNumberOfSymbols()` to C API by siiky in https://github.com/zxing-cpp/zxing-cpp/pull/665
* aztec: on decoding check for padding bits after B/S by gitlost in https://github.com/zxing-cpp/zxing-cpp/pull/671

New Contributors
* Sec-ant made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/588
* LeonnardoVerol made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/597
* EchterAgo made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/613
* billmccartney made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/616
* gregtws made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/618
* okarmazin made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/619
* alexmanzer made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/624
* dainnilsson made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/625
* benjohnde made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/630
* sayzzy-nt made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/633
* michaelweghorn made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/674

**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v2.1.0...v2.2.0

2.1.0

Major Changes
* Considerable performance improvements in linear symbol detection (up to 2x speedup in select use cases of `ReadBarcodes`)
* QRCode: major improvement in detection of high version symbols (see e.g. [here](https://github.com/zxing-cpp/zxing-cpp/blob/master/test/samples/qrcode-2/high-res-1.jpg))
* DMDetector: reduce runtime overhead of c++-20 builds by around 50%
* Refactor Python wrapper so the sdist includes the core library code by stumpylog in https://github.com/zxing-cpp/zxing-cpp/pull/530
* wasm wrapper: add function to reader to scan multiple barcode by Trim in https://github.com/zxing-cpp/zxing-cpp/pull/567
* Added a C wrapper by siiky in https://github.com/zxing-cpp/zxing-cpp/pull/553. If you find this useful, please have a look at #583.
* new `BUILD_EXPERIMENTAL_API` cmake option (currently enabling `DecodeHints::tryDenoise` feature, see 9bcfdb3637714af9419bae99dd4c48a12625ab1e)
[**EDIT**: just noticed that this does not work, see 8202a4e13a65de3a2b459d121af7b02cc7d2e9b5]

Minor Changes
* fix crash when the source image is less than 3 pixels width/height by liulex in https://github.com/zxing-cpp/zxing-cpp/pull/476
* Android: Enable the saving of images to the phone gallery. by Sergio- in https://github.com/zxing-cpp/zxing-cpp/pull/483
* WASM wrapper: add symbologyIdentifier into result by AlexXiong-dev in https://github.com/zxing-cpp/zxing-cpp/pull/576
* CI: build universal2 python module for macos
* Python: compile module with c++20 (position independend DataMatrix support) by default
* Python: improve error reporting
* DMDetector: fix potential dead-lock
* DMDecoder: support 144x144 symbols in legacy and compliant variants
* UPC/EAN: reduce right quiet zone requirement -> fix non-conformant input
* EAN/UPCA: include AddOn in position calculation
* MSVC build option cleanup
* WASM: simplify and cleanup `demo_*.html` files
* Updated live web demos to latest code (and setup semi-automatic gh-page creation for the future)
* a bunch of minor bug fixes

Sponsors
Thanks a lot to Sergio- and sdcubber for their sponsorship in the past and also to the [current sponsors](https://github.com/zxing-cpp/zxing-cpp#sponsors)

New Contributors
* liulex made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/476
* Sergio- made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/483
* FalsinSoft made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/484
* kientux made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/507
* cbm755 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/513
* stumpylog made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/533
* nmariusp made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/554
* fedormsv made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/573
* AlexXiong-dev made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/576
* siiky made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/553

**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v2.0.0...v2.1.0

2.0.0

The most visible change from the client perspective is the removal of all formerly deprecated API, (almost) completing the 'cleanup'. Since I was way too slow with this release to implement a 'cleanish' SemVer release as discussed in 333, I decided to release this 2.0 with SONAME 3. A 3.0 release might bring the major version number back in sync with the SONAME.

Major Changes
* switch to UTF8 based API and remove deprecated UTF16 one (`Result::text()`)
* remove all API deprecated in 1.4
* Adding a wrapper for iOS by parallaxe in https://github.com/zxing-cpp/zxing-cpp/pull/337
* new Aztec detector implementation to support arbitrary rotation and position of the symbol
* support multi-symbol detection in Aztec detector
* replace all Qt originated ECI/CharacterSet conversion code with a new implementation provided by gitlost (libzueci)
* require c++17 to build library and client code
* new `DecodeHints::textMode()` and `Result::text(TextMode)` API to specify how `bytes` are rendered into `text`.
* HRI (human readable interpretation) is the new default for the `TextMode` (has been for most cases before, but not all)
* new `DecodeHits::tryInvert()` feature to test for inverted symbols (white on black background)

Minor Changes
* deprecate `TextUtfEncoding` helpers, not required anymore with UTF8 APIs for both reader and writer
* support for multi-symbol and arbitrary position detection of DataMatrix symbols when library is built with c++20
* Include version number of QR Code and DataMatrix in Result by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/396
* reduce size of `Result` struct by about a third
* cleanup all license related files (see removal of the Qt code above)
* update links and comments to refer to new github.com/zxing-cpp/zxing-cpp home
* improved Code128 decoder for over/underexposed images
* support python 3.11
* a whole bunch of fixes and minor improvements all over the place

New Contributors
* khoren93 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/356
* parallaxe made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/337
* Alex-MSFT made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/415
* Trim made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/435
* zander made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/446
* th1722 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/458

Thanks also to all the 'old' ones! :)

**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v1.4.0...v2.0.0

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.