Shiny new stuff (more than I was aware of, after all this time...)
- Add support for DX Film Edge read by @Merinorus in #684
- Add support for detecting and reading Aztec Runes by @gormster in #763
- Add reader support for
DataBarLimited
symbols (sponsored by EUREKAM) - Add C-API in official build
- Add Kotlin/Native Wrapper by @ISNing in #719
- Add Rust wrapper based on C-API
- Add .NET wrapper based on C-API
- Introduce new name
Barcode
forResult
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 withZXING_...
- 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
tozxingcpp.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 #692
- ios: remove initWithFormats initializer by @markusfisch in #723
- cmake: Make build reproducible across different build directories by @EchterAgo in #730
- Release color space after use in iOS wrapper by @markusfisch in #790
- cmake: allow overriding python install directories by @jameshilliard in #842
- Refine MultiFormatReader results filtering and apply C++20
erase_if
by @Doekin in #846 - HRI: update AIs to latest gs1-syntax-dictionary.txt by @gitlost in #880
- android: add linker flag to support flexible page sizes in Android 15 by @ccrowell-kr in #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 #684
- @ISNing made their first contribution in #718
- @hha1501 made their first contribution in #747
- @gormster made their first contribution in #763
- @549393092 made their first contribution in #777
- @bindreams made their first contribution in #787
- @johngladp made their first contribution in #808
- @jameshilliard made their first contribution in #842
- @Doekin made their first contribution in #846
- @spageektti made their first contribution in #858
- @stbergmann made their first contribution in #864
- @ccrowell-kr made their first contribution in #872
- @GUIEEN made their first contribution in #877
Sponsors
Thanks a lot for all 'old' and 'new' sponsors, listed here in alphabetical order:
Full Changelog: v2.2.1...v2.3.0