Zxing-cpp

Latest version: v2.3.0

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

Scan your dependencies

Page 2 of 4

1.4.0

Note: this is an intermediary release on the way to 2.0. This code is (supposed to be) API compatible (via the `ReadBarcode.h` interface) with v1.3.0 but contains quite a few additional deprecations. It still has SO number 1, which is as wrong as it was for release v1.3.0 and it is not ABI compatible with 1.3 either. 2.0 will be basically 1.4 but with all deprecated API removed and the final fix for 333.

Main changes
* Reader support for Micro QRCode by corbers
* prepared switch from `std::wstring` based utf16 to `std::string` based utf8 results, use new [`ZX_USE_UTF8` macro](https://github.com/nu-book/zxing-cpp/blob/776a2b4f29cbc6c4410aa992080e391c63477a69/core/src/Result.h#L69) to transition to the upcoming 2.0 API
* much improved 'binary' data support via new `Result::bytes()` API, see 334 for a detailed background discussion.
* new `Result::contentType()` API returning information about the type of content (like text vs. binary, etc.)
* better standards conformance with respect to ECI handling, see `Results::bytesECI()`
* support for proper ECI handling across structured append symbols (see [`MergeStructuredAppendResults()`](https://github.com/nu-book/zxing-cpp/blob/776a2b4f29cbc6c4410aa992080e391c63477a69/core/src/Result.h#L185))
* new `Result::error()` API with improved error handling, see also `DecodeHints::returnErrors()`
* removed all internal header files from the installed set, so only the `ReadBarcode.h` based APIs are supported from here on out
* removed all sample images from the 'source' distribution zip/tar balls (much reduced size)
* python `read_barcode` returns `None` if no symbol was found (might break existing code if not checked for `None` before)

Minor changes
* lots of little bug fixes
* smaller per process runtime memory (thanks to vkrause)
* clang-13 and gcc-13 compilation fixes
* ported Qt example code to Qt6
* experimental multi-symbol detection support for DataMatrix when compiled with c++-20
* fix error in multi-symbol detection of linear codes (sometimes reported 1 symbol as 2)
* new `-bytes` and `-errors` options in `ZXingReader`
* support `tryRotate` for PDF417 symbols

**Full Changelog**: https://github.com/nu-book/zxing-cpp/compare/v1.3.0...v1.4.0

1.3.0

**DISCLAIMER**: a note for downstream package maintainers: as discussed in 333 this release should have been named 2.0 not 1.3. Please don't package this release until the issue is resolved.

The major new features:
* Multi-barcode reading with the new `std::vector<Result> ReadBardcodes(...)` function. Does not work for Aztec, DataMatrix and Maxicode, yet.
* Multi-resolution scanning that can automatically downscale the input to substantially increase the detection rate on high resolution scans, see `DecodeHints::tryDownscale`, currently only enabled in the `ReadBardcodes` function
* New `Result::symbologyIdentifier` property (thanks to gitlost)
* Updated and improved android wrapper (thanks to markusfisch)

Worth mentioning:
* Most deprecated APIs from last release were removed (will likely break your build if you still have deprecation warnings with 1.2.0)
* New `Result::lineCount` and `DecodeHints::minLineCount` properties to improve reliability of 1D code reading
* New `Result::isMirrored` property (works for QRCode, PDF417, DataMatrix)
* Improved FNC1 handling and deprecation of `DecodeHints::assumeGS1`
* Lots of small fixes all over the place
* Drop in-tree copy of stb image library
* New [OpenCV example code](https://github.com/nu-book/zxing-cpp/blob/master/example/ZXingOpenCV.h)
* QRCode reading improvements
* Python 3.10 support

This includes around 200 commits including those of 11 new contributors.

**Full Changelog**: https://github.com/nu-book/zxing-cpp/compare/v1.2.0...v1.3.0

1.2.0

There have been nearly 800 commits that touched about 10k lines of code since the last release.

Here are the highlights/major changes:
* switch to C++-17 (client code can still be compiled with a C++-11 compiler)
* switch to the reimplemented 1D detectors (about 5x faster than old ones in false-positive use case)
* deprecate the use of `ResultMetadata`, see ZXingReader.cpp as an example
* completely new Android wrapper library with CameraX support, integrated build system and demo app
* a lot faster and more capable `isPure` detection for all 2D codes
* completely new QRCode reader (faster, better support for rotated symbols)
* new `BarcodeFormat` names (old ones still available but deprecated)
* new ZXingQtCamReader demo app based on QtMultimedia and QtQuick
* reduced false positive rate for UPC/EAN barcodes + improved Add-On symbol handling
* 20% faster ReedSolomon error correcting
* PDF417 is faster and supports flipped symbols
* DataMatrix: added DMRE support
* much improved python wrapper incl. PyPI module for easy `pip` installation (thanks to antoinehumbert)
* proper ECI handling in all 2D barcodes (thanks to gitlost)
* added Structured Append support for `DataMatrix`, `Aztec` and `MaxiCode` (thanks to gitlost)

Note: The next release will drop support for a number of deprecated APIs. Please update your code and fix all deprecation warnings now.

1.1.1

Since the switch to C++17 got delayed and a bunch of fixes and small improvements have piled up since the "Final C++14 based" release, here is the final-final pre C++17 release. This includes WinRT build improvements, Android and python wrapper fixes and pkgconfig fixes.

1.1.0

The purpose of this release is mainly to tag the last version that can be compiled with a C++-14 compiler.

There have been a lot of changes under the hood and to the public facing API. Effort has been made to make sure the client code still compiles without changes. If you encounter deprecation warnings from your compiler, please update you code as those outdated APIs will be removed in a future version.

Here are the highlights of the changes:
* A new and (hopefully) 'future proof' single `ReadBarcode` entry point into the decoding functionality.
* The LuminanceSource based API is now deprecated but still compiles.
* A new `BarcodeFormats` flag type to specify the set of barcodes to look for.
* Deprecated unrelyable `Result::resultPoints` in favor of well defined `Result::position`.
* Deprecated `Result::metadata() -> ORIENTATION` in favor of `Result::orientation`.
* New `Binarizer` enum in `DecodeHints` to specify the binarizer for the `ReadBarcode` API.
* New `DecodeHints::isPure` property to speed up detection for 'pure' input use-cases.
* New 'unified' CMake structure to build (most) of the project from the top-level project.
* New `ZXingReader` and `ZXingWriter` example code also meant for distributing.
* New CI system based on gitub actions to continuously test on Windows/macOS/Linux/emscripten.
* New simplified and consistent Python API (breaking change)
* ReedSolomon error detection code 2x speedup.
* Enable basic MaxiCode support.
* Fix coutry-code metatdata decoding for UPC/EAN codes.
* Slightly improved QRCode detection for rotated symbols.
* Faster PDF417 decoder.
* Lots of minor code readability and general cleanup improvements.

1.0.8

- Improve DataMatrix encoder
- Add interface to simplify basic usage
- WASM API to support pixels array as input
- Few minor bug fixes

Page 2 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.