./graphics/zxing-cpp, 1D/2D barcode reader/writer library in C++

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.0.2, Package name: zxing-cpp-3.0.2, Maintainer: ryoon

ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D
barcode image processing library implemented in C++.

It was originally ported from the Java ZXing Library but has been
developed further and now includes many improvements in terms of
quality and performance. It can both read and write barcodes in a
number of formats.


Master sites:

Filesize: 1015.277 KB

Version history: (Expand)


CVS history: (Expand)


   2026-03-12 08:13:25 by Thomas Klausner | Files touched by this commit (1)
Log message: zxing-cpp: fix path to itself 
   2026-03-12 01:59:16 by Ryo ONODERA | Files touched by this commit (4)
Log message: graphics/zxing-cpp: Update to 3.0.2 * Packaged by wiz@ in pkgsrc-wip/zxing-cpp. Changelog: 3.0.2: Patch release This is a patch release, fixing three issues: Workaround for missing <format> C++20 header in GCC 11 and GCC 12 This is required to make Homebrew and older distros happy. Zint Header Detection Fix Fixed an issue that caused a <zint.h> not found error when building \ the library with -DZXING_USE_BUNDLED_ZINT=OFF and libzint was installed in a \ non-standard install prefix (e.g., /opt/homebrew). Typo Fix in ReaderOptions API Fixed a typo in the newly added ReaderOptions::validateOptionalCheckSum, now \ correctly named validateOptionalChecksum. If anyone is angry at me for breaking \ their brand new code, let me know and I’ll consider adding a compatibility \ symbol with the "one week old" name. 3.0.1: Patch release This is a patch release, fixing a critical error (compile regression, see #1051) \ for people relying on the "old" (MultiFormatWriter) API. All wrapper \ code is unaffected and will not be released as 3.0.1. Note 1: The old writer API is disabled by default, to enable it, you need to \ configure zxing-cpp with -DZXING_WRITERS=BOTH (or OLD). It is generally advised \ for package maintainers to use the BOTH config option during the 3.0 release \ cycle to allow client applications (like e.g. LibreOffice) to work until they \ switch to the new API. Note 2: The new API is backed by libzint. The default config will statically \ link a bundled 2.16 version of libzint. If your distribution has a libzint v2.16 \ available, you might want to configure zxing-cpp to link against that: \ -DZXING_USE_BUNDLED_ZINT=OFF 3.0: 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. There has been an issue detected after the release (#1051), which affects \ users who need access to the OLD ZXING_WRITERS (MultiFormatWriter.h). This will \ be fixed in a 3.0.1 patch release. 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 
   2025-01-12 11:33:18 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: zxing-cpp: update to 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 #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 (EDIT: unfortunately the default is still off, \ to enable do cmake -DZXING_C_API=ON) 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 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 #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) 
   2024-08-25 08:19:21 by Thomas Klausner | Files touched by this commit (575)
Log message: *: replace CMAKE_ARGS with CMAKE_CONFIGURE_ARGS 
   2023-12-11 11:10:16 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: zxing-cpp: update to 2.2.1. 2.2.1 I accidentally broke c++ ABI compatibility between 2.1.0 and 2.2.0. This is \ fixed here. 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. 2.2.0 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 #616 Remove numpy requirement, use buffer protocol instead by @EchterAgo in #615 Support sliced numpy arrays Expose return_errors parameter to Python wrapper APIs. by @gregtws in #618 Expose Result::ecLevel method as python property by @marcoffee in #600 Build wheels for Python 3.12. by @dainnilsson in #625 Android: Android wrapper: Modernize build files by @okarmazin in #619 Fix permissions on Android R+ by @markusfisch in #656 Android wrapper improvements by @markusfisch in #659 android: add consumerProguardFiles by @markusfisch in #660 android: Fix build with NDK 26 by @michaelweghorn in #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 #630 iOS wrapper: Add functionality of encoding binary data into Barcodes by \ @alexmanzer in #635 Rename ZXingCppWrapper to ZXingCpp by @alexmanzer in #638 iOS: Enable CocoaPods by providing a podspec by @benjohnde in #637 Build with C++20 (improved DataMatrix detection) by default ios: specify EC level/margin for generation by @markusfisch in #644 ios: expose all native result items in wrapper by @markusfisch in #649 ios: clean up ZXIDecodeHints by @markusfisch in #652 ios: use a default error text instead of crashing by @markusfisch in #661 ios: improve exception handling by @markusfisch in #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 #588 DataMatrix: use charset for encoding by @markusfisch in #628 QRCode: Support QR Code Model1 by @sayzzy-nt in #633 rMQR Code: Support Rectangular Micro QR Code by @gitlost in #681 Minor Changes and Fixes Fix QT 6 QML Crash & Enable QML Shape by @LeonnardoVerol in #597 Python: Fix wrapper build on MSVC not having __cplusplus for BitHacks by \ @EchterAgo in #613 Correctly handle supported image formats on Android APIs < 23 by \ @okarmazin in #622 Add DecodeHints.setMaxNumberOfSymbols() to C API by @siiky in #665 aztec: on decoding check for padding bits after B/S by @gitlost in #671 
   2023-07-19 15:10:11 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message: zxing-cpp: update to 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) 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 #530 wasm wrapper: add function to reader to scan multiple barcode by @Trim in #567 Added a C wrapper by @siiky in #553. If you find this useful, please have a \ look at #583. new BUILD_EXPERIMENTAL_API cmake option (currently enabling \ DecodeHints::tryDenoise feature, see 9bcfdb3) [EDIT: just noticed that this does not work, see 8202a4e] Minor Changes fix crash when the source image is less than 3 pixels width/height by \ @liulex in #476 Android: Enable the saving of images to the phone gallery. by @Sergio- in #483 WASM wrapper: add symbologyIdentifier into result by @AlexXiong-dev in #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 
   2023-07-18 20:19:24 by Nia Alarie | Files touched by this commit (17)
Log message: graphics: Adapt packages to USE_(CC|CXX)_FEATURES 
   2023-07-10 09:51:27 by Nia Alarie | Files touched by this commit (2)
Log message: zxing-cpp: Sync compiler requirements with reality.