react-native-nitro-zxing 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/VisionCameraZxing.podspec +48 -0
- package/android/CMakeLists.txt +43 -0
- package/android/build.gradle +150 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/cpp/cpp-adapter.cpp +7 -0
- package/android/src/main/java/com/margelo/nitro/camera/zxing/VisionCameraZxingPackage.kt +21 -0
- package/cpp/BarcodeValueTypeClassifier.cpp +70 -0
- package/cpp/BarcodeValueTypeClassifier.hpp +14 -0
- package/cpp/FrameImageView.cpp +75 -0
- package/cpp/FrameImageView.hpp +34 -0
- package/cpp/HybridBarcode.cpp +59 -0
- package/cpp/HybridBarcode.hpp +26 -0
- package/cpp/HybridBarcodeScanner.cpp +121 -0
- package/cpp/HybridBarcodeScanner.hpp +26 -0
- package/cpp/HybridBarcodeScannerFactory.cpp +11 -0
- package/cpp/HybridBarcodeScannerFactory.hpp +14 -0
- package/cpp/ImageDownscaler.cpp +34 -0
- package/cpp/ImageDownscaler.hpp +21 -0
- package/cpp/ZXingDecoder.cpp +189 -0
- package/cpp/ZXingDecoder.hpp +72 -0
- package/cpp/zxing-core/LICENSE +202 -0
- package/cpp/zxing-core/README.md +156 -0
- package/cpp/zxing-core/core/CMakeLists.txt +784 -0
- package/cpp/zxing-core/core/Version.h.in +28 -0
- package/cpp/zxing-core/core/ZXingConfig.cmake.in +9 -0
- package/cpp/zxing-core/core/src/Barcode.cpp +255 -0
- package/cpp/zxing-core/core/src/Barcode.h +191 -0
- package/cpp/zxing-core/core/src/BarcodeData.h +100 -0
- package/cpp/zxing-core/core/src/BarcodeFormat.cpp +286 -0
- package/cpp/zxing-core/core/src/BarcodeFormat.h +272 -0
- package/cpp/zxing-core/core/src/BinaryBitmap.cpp +111 -0
- package/cpp/zxing-core/core/src/BinaryBitmap.h +66 -0
- package/cpp/zxing-core/core/src/BitArray.cpp +38 -0
- package/cpp/zxing-core/core/src/BitArray.h +181 -0
- package/cpp/zxing-core/core/src/BitMatrix.cpp +175 -0
- package/cpp/zxing-core/core/src/BitMatrix.h +199 -0
- package/cpp/zxing-core/core/src/BitMatrixCursor.h +253 -0
- package/cpp/zxing-core/core/src/BitMatrixIO.cpp +101 -0
- package/cpp/zxing-core/core/src/BitMatrixIO.h +21 -0
- package/cpp/zxing-core/core/src/BitSource.cpp +77 -0
- package/cpp/zxing-core/core/src/BitSource.h +72 -0
- package/cpp/zxing-core/core/src/ByteArray.h +42 -0
- package/cpp/zxing-core/core/src/CharacterSet.cpp +78 -0
- package/cpp/zxing-core/core/src/CharacterSet.h +58 -0
- package/cpp/zxing-core/core/src/ConcentricFinder.cpp +312 -0
- package/cpp/zxing-core/core/src/ConcentricFinder.h +156 -0
- package/cpp/zxing-core/core/src/Content.cpp +471 -0
- package/cpp/zxing-core/core/src/Content.h +82 -0
- package/cpp/zxing-core/core/src/ContentType.h +19 -0
- package/cpp/zxing-core/core/src/CreateBarcode.cpp +490 -0
- package/cpp/zxing-core/core/src/CreateBarcode.h +132 -0
- package/cpp/zxing-core/core/src/DecoderResult.h +92 -0
- package/cpp/zxing-core/core/src/DetectorResult.h +44 -0
- package/cpp/zxing-core/core/src/ECI.cpp +81 -0
- package/cpp/zxing-core/core/src/ECI.h +78 -0
- package/cpp/zxing-core/core/src/Error.cpp +29 -0
- package/cpp/zxing-core/core/src/Error.h +79 -0
- package/cpp/zxing-core/core/src/Flags.h +165 -0
- package/cpp/zxing-core/core/src/GTIN.cpp +253 -0
- package/cpp/zxing-core/core/src/GTIN.h +58 -0
- package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.cpp +197 -0
- package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.h +34 -0
- package/cpp/zxing-core/core/src/GridSampler.cpp +124 -0
- package/cpp/zxing-core/core/src/GridSampler.h +59 -0
- package/cpp/zxing-core/core/src/HRI.cpp +343 -0
- package/cpp/zxing-core/core/src/HRI.h +16 -0
- package/cpp/zxing-core/core/src/HybridBinarizer.cpp +315 -0
- package/cpp/zxing-core/core/src/HybridBinarizer.h +40 -0
- package/cpp/zxing-core/core/src/ImageView.h +168 -0
- package/cpp/zxing-core/core/src/JSON.cpp +154 -0
- package/cpp/zxing-core/core/src/JSON.h +66 -0
- package/cpp/zxing-core/core/src/LocalGrid.cpp +242 -0
- package/cpp/zxing-core/core/src/LocalGrid.h +91 -0
- package/cpp/zxing-core/core/src/LogMatrix.h +105 -0
- package/cpp/zxing-core/core/src/Matrix.h +125 -0
- package/cpp/zxing-core/core/src/MultiFormatReader.cpp +107 -0
- package/cpp/zxing-core/core/src/MultiFormatReader.h +34 -0
- package/cpp/zxing-core/core/src/MultiFormatWriter.cpp +111 -0
- package/cpp/zxing-core/core/src/MultiFormatWriter.h +62 -0
- package/cpp/zxing-core/core/src/Pattern.h +472 -0
- package/cpp/zxing-core/core/src/PerspectiveTransform.cpp +81 -0
- package/cpp/zxing-core/core/src/PerspectiveTransform.h +47 -0
- package/cpp/zxing-core/core/src/Point.h +185 -0
- package/cpp/zxing-core/core/src/Quadrilateral.h +215 -0
- package/cpp/zxing-core/core/src/Range.h +112 -0
- package/cpp/zxing-core/core/src/ReadBarcode.cpp +335 -0
- package/cpp/zxing-core/core/src/ReadBarcode.h +33 -0
- package/cpp/zxing-core/core/src/Reader.h +32 -0
- package/cpp/zxing-core/core/src/ReaderOptions.h +210 -0
- package/cpp/zxing-core/core/src/ReedSolomon.cpp +100 -0
- package/cpp/zxing-core/core/src/ReedSolomon.h +66 -0
- package/cpp/zxing-core/core/src/RegressionLine.h +161 -0
- package/cpp/zxing-core/core/src/ResultPoint.cpp +20 -0
- package/cpp/zxing-core/core/src/ResultPoint.h +35 -0
- package/cpp/zxing-core/core/src/StdGenerator.h +121 -0
- package/cpp/zxing-core/core/src/StdPrint.h +38 -0
- package/cpp/zxing-core/core/src/StdScope.h +55 -0
- package/cpp/zxing-core/core/src/StructuredAppend.h +19 -0
- package/cpp/zxing-core/core/src/SymbologyIdentifier.h +29 -0
- package/cpp/zxing-core/core/src/TextDecoder.cpp +59 -0
- package/cpp/zxing-core/core/src/TextDecoder.h +23 -0
- package/cpp/zxing-core/core/src/TextEncoder.cpp +75 -0
- package/cpp/zxing-core/core/src/TextEncoder.h +31 -0
- package/cpp/zxing-core/core/src/ThresholdBinarizer.h +58 -0
- package/cpp/zxing-core/core/src/TritMatrix.h +29 -0
- package/cpp/zxing-core/core/src/Utf.cpp +276 -0
- package/cpp/zxing-core/core/src/Utf.h +26 -0
- package/cpp/zxing-core/core/src/WhiteRectDetector.cpp +276 -0
- package/cpp/zxing-core/core/src/WhiteRectDetector.h +36 -0
- package/cpp/zxing-core/core/src/WriteBarcode.cpp +213 -0
- package/cpp/zxing-core/core/src/WriteBarcode.h +72 -0
- package/cpp/zxing-core/core/src/ZXAlgorithms.h +353 -0
- package/cpp/zxing-core/core/src/ZXConfig.h +17 -0
- package/cpp/zxing-core/core/src/ZXTestSupport.h +9 -0
- package/cpp/zxing-core/core/src/ZXVersion.h +14 -0
- package/cpp/zxing-core/core/src/ZXingC.cpp +460 -0
- package/cpp/zxing-core/core/src/ZXingC.h +296 -0
- package/cpp/zxing-core/core/src/ZXingCpp.cpp +18 -0
- package/cpp/zxing-core/core/src/ZXingCpp.h +76 -0
- package/cpp/zxing-core/core/src/ZXingQt.h +606 -0
- package/cpp/zxing-core/core/src/aztec/AZDecoder.cpp +376 -0
- package/cpp/zxing-core/core/src/aztec/AZDecoder.h +20 -0
- package/cpp/zxing-core/core/src/aztec/AZDetector.cpp +508 -0
- package/cpp/zxing-core/core/src/aztec/AZDetector.h +25 -0
- package/cpp/zxing-core/core/src/aztec/AZDetectorResult.h +51 -0
- package/cpp/zxing-core/core/src/aztec/AZEncoder.cpp +318 -0
- package/cpp/zxing-core/core/src/aztec/AZEncoder.h +44 -0
- package/cpp/zxing-core/core/src/aztec/AZEncodingState.h +40 -0
- package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.cpp +377 -0
- package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.h +36 -0
- package/cpp/zxing-core/core/src/aztec/AZReader.cpp +45 -0
- package/cpp/zxing-core/core/src/aztec/AZReader.h +21 -0
- package/cpp/zxing-core/core/src/aztec/AZToken.cpp +44 -0
- package/cpp/zxing-core/core/src/aztec/AZToken.h +39 -0
- package/cpp/zxing-core/core/src/aztec/AZWriter.cpp +38 -0
- package/cpp/zxing-core/core/src/aztec/AZWriter.h +55 -0
- package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.cpp +194 -0
- package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.h +21 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.cpp +63 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.h +41 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDecoder.cpp +457 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDecoder.h +19 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDetector.cpp +1230 -0
- package/cpp/zxing-core/core/src/datamatrix/DMDetector.h +23 -0
- package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.cpp +137 -0
- package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.h +26 -0
- package/cpp/zxing-core/core/src/datamatrix/DMEncoderContext.h +128 -0
- package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.cpp +919 -0
- package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.h +29 -0
- package/cpp/zxing-core/core/src/datamatrix/DMReader.cpp +40 -0
- package/cpp/zxing-core/core/src/datamatrix/DMReader.h +21 -0
- package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.cpp +141 -0
- package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.h +78 -0
- package/cpp/zxing-core/core/src/datamatrix/DMSymbolShape.h +17 -0
- package/cpp/zxing-core/core/src/datamatrix/DMVersion.cpp +82 -0
- package/cpp/zxing-core/core/src/datamatrix/DMVersion.h +76 -0
- package/cpp/zxing-core/core/src/datamatrix/DMWriter.cpp +114 -0
- package/cpp/zxing-core/core/src/datamatrix/DMWriter.h +62 -0
- package/cpp/zxing-core/core/src/librscpp/README.md +65 -0
- package/cpp/zxing-core/core/src/librscpp/decode.h +258 -0
- package/cpp/zxing-core/core/src/librscpp/encode.h +124 -0
- package/cpp/zxing-core/core/src/librscpp/field.h +158 -0
- package/cpp/zxing-core/core/src/librscpp/poly.h +194 -0
- package/cpp/zxing-core/core/src/libzint/2of5inter.c +1 -0
- package/cpp/zxing-core/core/src/libzint/2of5inter_based.c +1 -0
- package/cpp/zxing-core/core/src/libzint/aztec.c +1 -0
- package/cpp/zxing-core/core/src/libzint/aztec.h +1 -0
- package/cpp/zxing-core/core/src/libzint/big5.h +1 -0
- package/cpp/zxing-core/core/src/libzint/codabar.c +1 -0
- package/cpp/zxing-core/core/src/libzint/code.c +1 -0
- package/cpp/zxing-core/core/src/libzint/code128.c +1 -0
- package/cpp/zxing-core/core/src/libzint/code128.h +1 -0
- package/cpp/zxing-core/core/src/libzint/common.c +1 -0
- package/cpp/zxing-core/core/src/libzint/common.h +1 -0
- package/cpp/zxing-core/core/src/libzint/dmatrix.c +1 -0
- package/cpp/zxing-core/core/src/libzint/dmatrix.h +1 -0
- package/cpp/zxing-core/core/src/libzint/dxfilmedge.c +1 -0
- package/cpp/zxing-core/core/src/libzint/eci.c +1 -0
- package/cpp/zxing-core/core/src/libzint/eci.h +1 -0
- package/cpp/zxing-core/core/src/libzint/eci_sb.h +1 -0
- package/cpp/zxing-core/core/src/libzint/filemem.c +1 -0
- package/cpp/zxing-core/core/src/libzint/filemem.h +1 -0
- package/cpp/zxing-core/core/src/libzint/fonts/normal_woff2.h +1 -0
- package/cpp/zxing-core/core/src/libzint/fonts/upcean_woff2.h +1 -0
- package/cpp/zxing-core/core/src/libzint/gb18030.h +1 -0
- package/cpp/zxing-core/core/src/libzint/gb2312.h +1 -0
- package/cpp/zxing-core/core/src/libzint/gbk.h +1 -0
- package/cpp/zxing-core/core/src/libzint/general_field.c +1 -0
- package/cpp/zxing-core/core/src/libzint/general_field.h +1 -0
- package/cpp/zxing-core/core/src/libzint/gs1.c +1 -0
- package/cpp/zxing-core/core/src/libzint/gs1.h +1 -0
- package/cpp/zxing-core/core/src/libzint/gs1_lint.h +1 -0
- package/cpp/zxing-core/core/src/libzint/iso3166.h +1 -0
- package/cpp/zxing-core/core/src/libzint/iso4217.h +1 -0
- package/cpp/zxing-core/core/src/libzint/ksx1001.h +1 -0
- package/cpp/zxing-core/core/src/libzint/large.c +1 -0
- package/cpp/zxing-core/core/src/libzint/large.h +1 -0
- package/cpp/zxing-core/core/src/libzint/library.c +1 -0
- package/cpp/zxing-core/core/src/libzint/maxicode.c +1 -0
- package/cpp/zxing-core/core/src/libzint/maxicode.h +1 -0
- package/cpp/zxing-core/core/src/libzint/medical.c +1 -0
- package/cpp/zxing-core/core/src/libzint/output.c +1 -0
- package/cpp/zxing-core/core/src/libzint/output.h +1 -0
- package/cpp/zxing-core/core/src/libzint/pdf417.c +1 -0
- package/cpp/zxing-core/core/src/libzint/pdf417.h +1 -0
- package/cpp/zxing-core/core/src/libzint/pdf417_tabs.h +1 -0
- package/cpp/zxing-core/core/src/libzint/qr.c +1 -0
- package/cpp/zxing-core/core/src/libzint/qr.h +1 -0
- package/cpp/zxing-core/core/src/libzint/raster.c +1 -0
- package/cpp/zxing-core/core/src/libzint/raster_font.h +1 -0
- package/cpp/zxing-core/core/src/libzint/reedsol.c +1 -0
- package/cpp/zxing-core/core/src/libzint/reedsol.h +1 -0
- package/cpp/zxing-core/core/src/libzint/reedsol_logs.h +1 -0
- package/cpp/zxing-core/core/src/libzint/rss.c +1 -0
- package/cpp/zxing-core/core/src/libzint/rss.h +1 -0
- package/cpp/zxing-core/core/src/libzint/sjis.h +1 -0
- package/cpp/zxing-core/core/src/libzint/stubs.c +137 -0
- package/cpp/zxing-core/core/src/libzint/svg.c +1 -0
- package/cpp/zxing-core/core/src/libzint/telepen.c +1 -0
- package/cpp/zxing-core/core/src/libzint/upcean.c +1 -0
- package/cpp/zxing-core/core/src/libzint/vector.c +1 -0
- package/cpp/zxing-core/core/src/libzint/zfiletypes.h +1 -0
- package/cpp/zxing-core/core/src/libzint/zint.h +1 -0
- package/cpp/zxing-core/core/src/libzint/zintconfig.h +1 -0
- package/cpp/zxing-core/core/src/libzueci/README.md +11 -0
- package/cpp/zxing-core/core/src/libzueci/zueci.c +1718 -0
- package/cpp/zxing-core/core/src/libzueci/zueci.h +179 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_big5.h +3884 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_common.h +31 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_gb18030.h +264 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_gb2312.h +2381 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_gbk.h +4047 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_ksx1001.h +2932 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_sb.h +1112 -0
- package/cpp/zxing-core/core/src/libzueci/zueci_sjis.h +2286 -0
- package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.cpp +68 -0
- package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.h +30 -0
- package/cpp/zxing-core/core/src/maxicode/MCDecoder.cpp +329 -0
- package/cpp/zxing-core/core/src/maxicode/MCDecoder.h +19 -0
- package/cpp/zxing-core/core/src/maxicode/MCReader.cpp +65 -0
- package/cpp/zxing-core/core/src/maxicode/MCReader.h +21 -0
- package/cpp/zxing-core/core/src/oned/ODCodabarReader.cpp +102 -0
- package/cpp/zxing-core/core/src/oned/ODCodabarReader.h +21 -0
- package/cpp/zxing-core/core/src/oned/ODCodabarWriter.cpp +136 -0
- package/cpp/zxing-core/core/src/oned/ODCodabarWriter.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODCode128Patterns.h +130 -0
- package/cpp/zxing-core/core/src/oned/ODCode128Reader.cpp +236 -0
- package/cpp/zxing-core/core/src/oned/ODCode128Reader.h +21 -0
- package/cpp/zxing-core/core/src/oned/ODCode128Writer.cpp +261 -0
- package/cpp/zxing-core/core/src/oned/ODCode128Writer.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODCode39Reader.cpp +213 -0
- package/cpp/zxing-core/core/src/oned/ODCode39Reader.h +26 -0
- package/cpp/zxing-core/core/src/oned/ODCode39Writer.cpp +176 -0
- package/cpp/zxing-core/core/src/oned/ODCode39Writer.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODCode93Patterns.h +80 -0
- package/cpp/zxing-core/core/src/oned/ODCode93Reader.cpp +112 -0
- package/cpp/zxing-core/core/src/oned/ODCode93Reader.h +21 -0
- package/cpp/zxing-core/core/src/oned/ODCode93Writer.cpp +192 -0
- package/cpp/zxing-core/core/src/oned/ODCode93Writer.h +32 -0
- package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.cpp +246 -0
- package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.h +26 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarCommon.cpp +172 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarCommon.h +204 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.cpp +253 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.h +19 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.cpp +383 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.h +25 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.cpp +163 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.h +23 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarReader.cpp +240 -0
- package/cpp/zxing-core/core/src/oned/ODDataBarReader.h +25 -0
- package/cpp/zxing-core/core/src/oned/ODEAN13Writer.cpp +62 -0
- package/cpp/zxing-core/core/src/oned/ODEAN13Writer.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODEAN8Writer.cpp +51 -0
- package/cpp/zxing-core/core/src/oned/ODEAN8Writer.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODITFReader.cpp +97 -0
- package/cpp/zxing-core/core/src/oned/ODITFReader.h +33 -0
- package/cpp/zxing-core/core/src/oned/ODITFWriter.cpp +78 -0
- package/cpp/zxing-core/core/src/oned/ODITFWriter.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.cpp +323 -0
- package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.h +32 -0
- package/cpp/zxing-core/core/src/oned/ODReader.cpp +259 -0
- package/cpp/zxing-core/core/src/oned/ODReader.h +35 -0
- package/cpp/zxing-core/core/src/oned/ODRowReader.h +222 -0
- package/cpp/zxing-core/core/src/oned/ODTelepenReader.cpp +199 -0
- package/cpp/zxing-core/core/src/oned/ODTelepenReader.h +25 -0
- package/cpp/zxing-core/core/src/oned/ODUPCAWriter.cpp +33 -0
- package/cpp/zxing-core/core/src/oned/ODUPCAWriter.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.cpp +80 -0
- package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.h +129 -0
- package/cpp/zxing-core/core/src/oned/ODUPCEWriter.cpp +56 -0
- package/cpp/zxing-core/core/src/oned/ODUPCEWriter.h +34 -0
- package/cpp/zxing-core/core/src/oned/ODWriterHelper.cpp +39 -0
- package/cpp/zxing-core/core/src/oned/ODWriterHelper.h +48 -0
- package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.cpp +796 -0
- package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.h +23 -0
- package/cpp/zxing-core/core/src/pdf417/PDF417.cpp +85 -0
- package/cpp/zxing-core/core/src/pdf417/PDF417.h +81 -0
- package/cpp/zxing-core/core/src/pdf417/PDFBarcodeMetadata.h +53 -0
- package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.cpp +48 -0
- package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.h +38 -0
- package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.cpp +116 -0
- package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.h +75 -0
- package/cpp/zxing-core/core/src/pdf417/PDFCodeword.h +71 -0
- package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.cpp +588 -0
- package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.h +41 -0
- package/cpp/zxing-core/core/src/pdf417/PDFCompaction.h +20 -0
- package/cpp/zxing-core/core/src/pdf417/PDFCustomData.h +32 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDecoder.cpp +725 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDecoder.h +20 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.cpp +247 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.h +74 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.cpp +321 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.h +83 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetector.cpp +371 -0
- package/cpp/zxing-core/core/src/pdf417/PDFDetector.h +45 -0
- package/cpp/zxing-core/core/src/pdf417/PDFEncoder.cpp +570 -0
- package/cpp/zxing-core/core/src/pdf417/PDFEncoder.h +182 -0
- package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.cpp +570 -0
- package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.h +32 -0
- package/cpp/zxing-core/core/src/pdf417/PDFReader.cpp +333 -0
- package/cpp/zxing-core/core/src/pdf417/PDFReader.h +28 -0
- package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.cpp +559 -0
- package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.h +41 -0
- package/cpp/zxing-core/core/src/pdf417/PDFWriter.cpp +170 -0
- package/cpp/zxing-core/core/src/pdf417/PDFWriter.h +74 -0
- package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.cpp +623 -0
- package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.h +81 -0
- package/cpp/zxing-core/core/src/pdf417/ZXNullable.h +105 -0
- package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.cpp +294 -0
- package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.h +41 -0
- package/cpp/zxing-core/core/src/qrcode/QRCodecMode.cpp +95 -0
- package/cpp/zxing-core/core/src/qrcode/QRCodecMode.h +59 -0
- package/cpp/zxing-core/core/src/qrcode/QRDataBlock.cpp +93 -0
- package/cpp/zxing-core/core/src/qrcode/QRDataBlock.h +52 -0
- package/cpp/zxing-core/core/src/qrcode/QRDataMask.h +50 -0
- package/cpp/zxing-core/core/src/qrcode/QRDecoder.cpp +359 -0
- package/cpp/zxing-core/core/src/qrcode/QRDecoder.h +19 -0
- package/cpp/zxing-core/core/src/qrcode/QRDetector.cpp +920 -0
- package/cpp/zxing-core/core/src/qrcode/QRDetector.h +45 -0
- package/cpp/zxing-core/core/src/qrcode/QRECB.h +52 -0
- package/cpp/zxing-core/core/src/qrcode/QREncodeResult.h +33 -0
- package/cpp/zxing-core/core/src/qrcode/QREncoder.cpp +568 -0
- package/cpp/zxing-core/core/src/qrcode/QREncoder.h +21 -0
- package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.cpp +51 -0
- package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.h +39 -0
- package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.cpp +160 -0
- package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.h +61 -0
- package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.cpp +156 -0
- package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.h +15 -0
- package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.cpp +318 -0
- package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.h +25 -0
- package/cpp/zxing-core/core/src/qrcode/QRReader.cpp +149 -0
- package/cpp/zxing-core/core/src/qrcode/QRReader.h +21 -0
- package/cpp/zxing-core/core/src/qrcode/QRVersion.cpp +754 -0
- package/cpp/zxing-core/core/src/qrcode/QRVersion.h +127 -0
- package/cpp/zxing-core/core/src/qrcode/QRWriter.cpp +51 -0
- package/cpp/zxing-core/core/src/qrcode/QRWriter.h +74 -0
- package/cpp/zxing-core/core/version.rc.in +34 -0
- package/cpp/zxing-core/core/zxing.pc.in +8 -0
- package/cpp/zxing-core/wrappers/ios/README.md +25 -0
- package/cpp/zxing-core/wrappers/ios/Sources/Wrapper/Version.h +29 -0
- package/cpp/zxing-core/zxing-cpp.podspec +45 -0
- package/lib/factory.d.ts +10 -0
- package/lib/factory.js +12 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +9 -0
- package/lib/specs/Barcode.nitro.d.ts +63 -0
- package/lib/specs/Barcode.nitro.js +1 -0
- package/lib/specs/BarcodeFormat.d.ts +11 -0
- package/lib/specs/BarcodeFormat.js +1 -0
- package/lib/specs/BarcodeScanner.nitro.d.ts +89 -0
- package/lib/specs/BarcodeScanner.nitro.js +1 -0
- package/lib/specs/BarcodeScannerFactory.nitro.d.ts +26 -0
- package/lib/specs/BarcodeScannerFactory.nitro.js +1 -0
- package/lib/specs/BarcodeValueType.d.ts +9 -0
- package/lib/specs/BarcodeValueType.js +1 -0
- package/lib/specs/Point.d.ts +14 -0
- package/lib/specs/Point.js +1 -0
- package/lib/specs/Rect.d.ts +22 -0
- package/lib/specs/Rect.js +1 -0
- package/lib/useBarcodeScanner.d.ts +23 -0
- package/lib/useBarcodeScanner.js +25 -0
- package/nitro.json +20 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/VisionCameraZxing+autolinking.cmake +83 -0
- package/nitrogen/generated/android/VisionCameraZxing+autolinking.gradle +27 -0
- package/nitrogen/generated/android/VisionCameraZxingOnLoad.cpp +49 -0
- package/nitrogen/generated/android/VisionCameraZxingOnLoad.hpp +34 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/camera/zxing/VisionCameraZxingOnLoad.kt +35 -0
- package/nitrogen/generated/ios/VisionCameraZxing+autolinking.rb +62 -0
- package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.cpp +17 -0
- package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.hpp +27 -0
- package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Umbrella.hpp +38 -0
- package/nitrogen/generated/ios/VisionCameraZxingAutolinking.mm +35 -0
- package/nitrogen/generated/ios/VisionCameraZxingAutolinking.swift +16 -0
- package/nitrogen/generated/shared/c++/BarcodeFormat.hpp +124 -0
- package/nitrogen/generated/shared/c++/BarcodeScannerOptions.hpp +85 -0
- package/nitrogen/generated/shared/c++/BarcodeValueType.hpp +120 -0
- package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridBarcodeSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridBarcodeSpec.hpp +82 -0
- package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/Point.hpp +87 -0
- package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
- package/nitrogen/generated/shared/c++/TargetBarcodeFormat.hpp +124 -0
- package/package.json +108 -0
- package/react-native.config.js +16 -0
- package/src/factory.ts +26 -0
- package/src/index.ts +9 -0
- package/src/specs/Barcode.nitro.ts +70 -0
- package/src/specs/BarcodeFormat.ts +31 -0
- package/src/specs/BarcodeScanner.nitro.ts +91 -0
- package/src/specs/BarcodeScannerFactory.nitro.ts +27 -0
- package/src/specs/BarcodeValueType.ts +25 -0
- package/src/specs/Point.ts +14 -0
- package/src/specs/Rect.ts +22 -0
- package/src/useBarcodeScanner.ts +36 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2006-2007 Jeremias Maerki.
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
#include "CharacterSet.h"
|
|
10
|
+
|
|
11
|
+
#include <string>
|
|
12
|
+
|
|
13
|
+
namespace ZXing {
|
|
14
|
+
|
|
15
|
+
class ByteArray;
|
|
16
|
+
|
|
17
|
+
namespace DataMatrix {
|
|
18
|
+
|
|
19
|
+
enum class SymbolShape;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* DataMatrix ECC 200 data encoder following the algorithm described in ISO/IEC 16022:200(E) in
|
|
23
|
+
* annex S.
|
|
24
|
+
*/
|
|
25
|
+
ByteArray Encode(const std::wstring& msg);
|
|
26
|
+
ByteArray Encode(const std::wstring& msg, CharacterSet charset, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight);
|
|
27
|
+
|
|
28
|
+
} // DataMatrix
|
|
29
|
+
} // ZXing
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Nu-book Inc.
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#include "DMReader.h"
|
|
8
|
+
|
|
9
|
+
#include "BinaryBitmap.h"
|
|
10
|
+
#include "DMDecoder.h"
|
|
11
|
+
#include "DMDetector.h"
|
|
12
|
+
#include "ReaderOptions.h"
|
|
13
|
+
#include "DecoderResult.h"
|
|
14
|
+
#include "DetectorResult.h"
|
|
15
|
+
#include "BarcodeData.h"
|
|
16
|
+
|
|
17
|
+
#include <utility>
|
|
18
|
+
|
|
19
|
+
namespace ZXing::DataMatrix {
|
|
20
|
+
|
|
21
|
+
BarcodesData Reader::read(const BinaryBitmap& image, int maxSymbols) const
|
|
22
|
+
{
|
|
23
|
+
auto binImg = image.getBitMatrix();
|
|
24
|
+
if (binImg == nullptr)
|
|
25
|
+
return {};
|
|
26
|
+
|
|
27
|
+
BarcodesData res;
|
|
28
|
+
for (auto&& detRes : Detect(*binImg, _opts.tryHarder(), _opts.tryRotate(), _opts.isPure())) {
|
|
29
|
+
auto decRes = Decode(detRes.bits());
|
|
30
|
+
if (decRes.isValid(_opts.returnErrors())) {
|
|
31
|
+
res.emplace_back(MatrixBarcode(std::move(decRes), std::move(detRes), BarcodeFormat::DataMatrix));
|
|
32
|
+
if (maxSymbols > 0 && Size(res) >= maxSymbols)
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return res;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Nu-book Inc.
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
#include "Reader.h"
|
|
10
|
+
|
|
11
|
+
namespace ZXing::DataMatrix {
|
|
12
|
+
|
|
13
|
+
class Reader : public ZXing::Reader
|
|
14
|
+
{
|
|
15
|
+
public:
|
|
16
|
+
using ZXing::Reader::Reader;
|
|
17
|
+
|
|
18
|
+
BarcodesData read(const BinaryBitmap& image, int maxSymbols) const override;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#include "DMSymbolInfo.h"
|
|
8
|
+
|
|
9
|
+
#include "ZXAlgorithms.h"
|
|
10
|
+
#include "ZXTestSupport.h"
|
|
11
|
+
|
|
12
|
+
#include <cstddef>
|
|
13
|
+
#include <stdexcept>
|
|
14
|
+
|
|
15
|
+
namespace ZXing::DataMatrix {
|
|
16
|
+
|
|
17
|
+
static constexpr const SymbolInfo PROD_SYMBOLS[] = {
|
|
18
|
+
{ false, 3, 5, 8, 8, 1 },
|
|
19
|
+
{ false, 5, 7, 10, 10, 1 },
|
|
20
|
+
{ true, 5, 7, 16, 6, 1 },
|
|
21
|
+
{ false, 8, 10, 12, 12, 1 },
|
|
22
|
+
{ true, 10, 11, 14, 6, 2 },
|
|
23
|
+
{ false, 12, 12, 14, 14, 1 },
|
|
24
|
+
{ true, 16, 14, 24, 10, 1 },
|
|
25
|
+
|
|
26
|
+
{ false, 18, 14, 16, 16, 1 },
|
|
27
|
+
{ false, 22, 18, 18, 18, 1 },
|
|
28
|
+
{ true, 22, 18, 16, 10, 2 },
|
|
29
|
+
{ false, 30, 20, 20, 20, 1 },
|
|
30
|
+
{ true, 32, 24, 16, 14, 2 },
|
|
31
|
+
{ false, 36, 24, 22, 22, 1 },
|
|
32
|
+
{ false, 44, 28, 24, 24, 1 },
|
|
33
|
+
{ true, 49, 28, 22, 14, 2 },
|
|
34
|
+
|
|
35
|
+
{ false, 62, 36, 14, 14, 4 },
|
|
36
|
+
{ false, 86, 42, 16, 16, 4 },
|
|
37
|
+
{ false, 114, 48, 18, 18, 4 },
|
|
38
|
+
{ false, 144, 56, 20, 20, 4 },
|
|
39
|
+
{ false, 174, 68, 22, 22, 4 },
|
|
40
|
+
|
|
41
|
+
{ false, 204, 84, 24, 24, 4, 102, 42 },
|
|
42
|
+
{ false, 280, 112, 14, 14, 16, 140, 56 },
|
|
43
|
+
{ false, 368, 144, 16, 16, 16, 92, 36 },
|
|
44
|
+
{ false, 456, 192, 18, 18, 16, 114, 48 },
|
|
45
|
+
{ false, 576, 224, 20, 20, 16, 144, 56 },
|
|
46
|
+
{ false, 696, 272, 22, 22, 16, 174, 68 },
|
|
47
|
+
{ false, 816, 336, 24, 24, 16, 136, 56 },
|
|
48
|
+
{ false, 1050, 408, 18, 18, 36, 175, 68 },
|
|
49
|
+
{ false, 1304, 496, 20, 20, 36, 163, 62 },
|
|
50
|
+
{ false, 1558, 620, 22, 22, 36, -1, 62 },
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
static const SymbolInfo* ZXING_IF_NOT_TEST(const) s_symbols = PROD_SYMBOLS;
|
|
54
|
+
static ZXING_IF_NOT_TEST(const) size_t s_symbolCount = Size(PROD_SYMBOLS);
|
|
55
|
+
|
|
56
|
+
#ifdef ZXING_BUILD_FOR_TEST
|
|
57
|
+
|
|
58
|
+
ZXING_EXPORT_TEST_ONLY
|
|
59
|
+
void OverrideSymbolSet(const SymbolInfo* symbols, size_t count)
|
|
60
|
+
{
|
|
61
|
+
s_symbols = symbols;
|
|
62
|
+
s_symbolCount = count;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
ZXING_EXPORT_TEST_ONLY
|
|
66
|
+
void UseDefaultSymbolSet()
|
|
67
|
+
{
|
|
68
|
+
s_symbols = PROD_SYMBOLS;
|
|
69
|
+
s_symbolCount = Size(PROD_SYMBOLS);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
#endif // ZXING_BUILD_FOR_TEST
|
|
73
|
+
|
|
74
|
+
const SymbolInfo *
|
|
75
|
+
SymbolInfo::Lookup(int dataCodewords)
|
|
76
|
+
{
|
|
77
|
+
return Lookup(dataCodewords, SymbolShape::NONE);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const SymbolInfo *
|
|
81
|
+
SymbolInfo::Lookup(int dataCodewords, SymbolShape shape)
|
|
82
|
+
{
|
|
83
|
+
return Lookup(dataCodewords, shape, -1, -1, -1, -1);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const SymbolInfo *
|
|
87
|
+
SymbolInfo::Lookup(int dataCodewords, bool allowRectangular)
|
|
88
|
+
{
|
|
89
|
+
return Lookup(dataCodewords, allowRectangular ? SymbolShape::NONE : SymbolShape::SQUARE, -1, -1, -1, -1);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const SymbolInfo *
|
|
93
|
+
SymbolInfo::Lookup(int dataCodewords, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight)
|
|
94
|
+
{
|
|
95
|
+
for (size_t i = 0; i < s_symbolCount; ++i) {
|
|
96
|
+
auto& symbol = s_symbols[i];
|
|
97
|
+
if (shape == SymbolShape::SQUARE && symbol._rectangular) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (shape == SymbolShape::RECTANGLE && !symbol._rectangular) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (minWidth >= 0 && minHeight >= 0 && (symbol.symbolWidth() < minWidth || symbol.symbolHeight() < minHeight)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (maxWidth >= 0 && maxHeight >= 0 && (symbol.symbolWidth() > maxWidth || symbol.symbolHeight() > maxHeight)) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (dataCodewords <= symbol._dataCapacity) {
|
|
110
|
+
return &symbol;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return nullptr;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
int
|
|
117
|
+
SymbolInfo::horizontalDataRegions() const
|
|
118
|
+
{
|
|
119
|
+
switch (_dataRegions) {
|
|
120
|
+
case 1: return 1;
|
|
121
|
+
case 2: return 2;
|
|
122
|
+
case 4: return 2;
|
|
123
|
+
case 16: return 4;
|
|
124
|
+
case 36: return 6;
|
|
125
|
+
default: throw std::out_of_range("Cannot handle this number of data regions");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
int
|
|
130
|
+
SymbolInfo::verticalDataRegions() const {
|
|
131
|
+
switch (_dataRegions) {
|
|
132
|
+
case 1: return 1;
|
|
133
|
+
case 2: return 1;
|
|
134
|
+
case 4: return 2;
|
|
135
|
+
case 16: return 4;
|
|
136
|
+
case 36: return 6;
|
|
137
|
+
default: throw std::out_of_range("Cannot handle this number of data regions");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
#include "DMSymbolShape.h"
|
|
10
|
+
|
|
11
|
+
namespace ZXing::DataMatrix {
|
|
12
|
+
|
|
13
|
+
class SymbolInfo
|
|
14
|
+
{
|
|
15
|
+
bool _rectangular;
|
|
16
|
+
int _dataCapacity;
|
|
17
|
+
int _errorCodewords;
|
|
18
|
+
int _matrixWidth;
|
|
19
|
+
int _matrixHeight;
|
|
20
|
+
int _dataRegions;
|
|
21
|
+
int _rsBlockData;
|
|
22
|
+
int _rsBlockError;
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
constexpr SymbolInfo(bool rectangular, int dataCapacity, int errorCodewords, int matrixWidth, int matrixHeight, int dataRegions)
|
|
26
|
+
: SymbolInfo(rectangular, dataCapacity, errorCodewords, matrixWidth, matrixHeight, dataRegions, dataCapacity, errorCodewords)
|
|
27
|
+
{}
|
|
28
|
+
|
|
29
|
+
constexpr SymbolInfo(bool rectangular, int dataCapacity, int errorCodewords, int matrixWidth, int matrixHeight, int dataRegions,
|
|
30
|
+
int rsBlockData, int rsBlockError)
|
|
31
|
+
: _rectangular(rectangular),
|
|
32
|
+
_dataCapacity(dataCapacity),
|
|
33
|
+
_errorCodewords(errorCodewords),
|
|
34
|
+
_matrixWidth(matrixWidth),
|
|
35
|
+
_matrixHeight(matrixHeight),
|
|
36
|
+
_dataRegions(dataRegions),
|
|
37
|
+
_rsBlockData(rsBlockData),
|
|
38
|
+
_rsBlockError(rsBlockError)
|
|
39
|
+
{}
|
|
40
|
+
|
|
41
|
+
static const SymbolInfo* Lookup(int dataCodewords);
|
|
42
|
+
static const SymbolInfo* Lookup(int dataCodewords, SymbolShape shape);
|
|
43
|
+
static const SymbolInfo* Lookup(int dataCodewords, bool allowRectangular);
|
|
44
|
+
static const SymbolInfo* Lookup(int dataCodewords, SymbolShape shape, int minWidth, int minHeight, int maxWidth, int maxHeight);
|
|
45
|
+
|
|
46
|
+
int horizontalDataRegions() const;
|
|
47
|
+
|
|
48
|
+
int verticalDataRegions() const;
|
|
49
|
+
|
|
50
|
+
int symbolDataWidth() const { return horizontalDataRegions() * _matrixWidth; }
|
|
51
|
+
|
|
52
|
+
int symbolDataHeight() const { return verticalDataRegions() * _matrixHeight; }
|
|
53
|
+
|
|
54
|
+
int symbolWidth() const { return symbolDataWidth() + (horizontalDataRegions() * 2); }
|
|
55
|
+
|
|
56
|
+
int symbolHeight() const { return symbolDataHeight() + (verticalDataRegions() * 2); }
|
|
57
|
+
|
|
58
|
+
int matrixWidth() const { return _matrixWidth; }
|
|
59
|
+
|
|
60
|
+
int matrixHeight() const { return _matrixHeight; }
|
|
61
|
+
|
|
62
|
+
int codewordCount() const { return _dataCapacity + _errorCodewords; }
|
|
63
|
+
|
|
64
|
+
int interleavedBlockCount() const { return _rsBlockData > 0 ? _dataCapacity / _rsBlockData : 10; /* Symbol 144 */ }
|
|
65
|
+
|
|
66
|
+
int dataCapacity() const { return _dataCapacity; }
|
|
67
|
+
|
|
68
|
+
int errorCodewords() const { return _errorCodewords; }
|
|
69
|
+
|
|
70
|
+
int dataLengthForInterleavedBlock(int index) const
|
|
71
|
+
{
|
|
72
|
+
return _rsBlockData > 0 ? _rsBlockData : (index <= 8 ? 156 : 155); /* Symbol 144 */
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
int errorLengthForInterleavedBlock() const { return _rsBlockError; }
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
namespace ZXing::DataMatrix {
|
|
10
|
+
|
|
11
|
+
enum class SymbolShape {
|
|
12
|
+
NONE,
|
|
13
|
+
SQUARE,
|
|
14
|
+
RECTANGLE,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Nu-book Inc.
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#include "DMVersion.h"
|
|
8
|
+
|
|
9
|
+
namespace ZXing::DataMatrix {
|
|
10
|
+
|
|
11
|
+
const Version* VersionForDimensions(int height, int width)
|
|
12
|
+
{
|
|
13
|
+
if ((height & 0x01) != 0 || (width & 0x01) != 0 || height < 8 || height > 144)
|
|
14
|
+
return nullptr;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* See ISO 16022:2006 5.5.1 Table 7
|
|
18
|
+
* See ISO 21471:2020 (DMRE) 5.5.1 Table 7
|
|
19
|
+
*/
|
|
20
|
+
static const Version allVersions[] = {
|
|
21
|
+
// clang-format off
|
|
22
|
+
{1, 10, 10, 8, 8, {5, {{1, 3 }, {0, 0}}}},
|
|
23
|
+
{2, 12, 12, 10, 10, {7, {{1, 5 }, {0, 0}}}},
|
|
24
|
+
{3, 14, 14, 12, 12, {10, {{1, 8 }, {0, 0}}}},
|
|
25
|
+
{4, 16, 16, 14, 14, {12, {{1, 12 }, {0, 0}}}},
|
|
26
|
+
{5, 18, 18, 16, 16, {14, {{1, 18 }, {0, 0}}}},
|
|
27
|
+
{6, 20, 20, 18, 18, {18, {{1, 22 }, {0, 0}}}},
|
|
28
|
+
{7, 22, 22, 20, 20, {20, {{1, 30 }, {0, 0}}}},
|
|
29
|
+
{8, 24, 24, 22, 22, {24, {{1, 36 }, {0, 0}}}},
|
|
30
|
+
{9, 26, 26, 24, 24, {28, {{1, 44 }, {0, 0}}}},
|
|
31
|
+
{10, 32, 32, 14, 14, {36, {{1, 62 }, {0, 0}}}},
|
|
32
|
+
{11, 36, 36, 16, 16, {42, {{1, 86 }, {0, 0}}}},
|
|
33
|
+
{12, 40, 40, 18, 18, {48, {{1, 114}, {0, 0}}}},
|
|
34
|
+
{13, 44, 44, 20, 20, {56, {{1, 144}, {0, 0}}}},
|
|
35
|
+
{14, 48, 48, 22, 22, {68, {{1, 174}, {0, 0}}}},
|
|
36
|
+
{15, 52, 52, 24, 24, {42, {{2, 102}, {0, 0}}}},
|
|
37
|
+
{16, 64, 64, 14, 14, {56, {{2, 140}, {0, 0}}}},
|
|
38
|
+
{17, 72, 72, 16, 16, {36, {{4, 92 }, {0, 0}}}},
|
|
39
|
+
{18, 80, 80, 18, 18, {48, {{4, 114}, {0, 0}}}},
|
|
40
|
+
{19, 88, 88, 20, 20, {56, {{4, 144}, {0, 0}}}},
|
|
41
|
+
{20, 96, 96, 22, 22, {68, {{4, 174}, {0, 0}}}},
|
|
42
|
+
{21, 104, 104, 24, 24, {56, {{6, 136}, {0, 0}}}},
|
|
43
|
+
{22, 120, 120, 18, 18, {68, {{6, 175}, {0, 0}}}},
|
|
44
|
+
{23, 132, 132, 20, 20, {62, {{8, 163}, {0, 0}}}},
|
|
45
|
+
{24, 144, 144, 22, 22, {62, {{8, 156}, {2, 155}}}},
|
|
46
|
+
{25, 8, 18, 6, 16, {7, {{1, 5 }, {0, 0}}}},
|
|
47
|
+
{26, 8, 32, 6, 14, {11, {{1, 10 }, {0, 0}}}},
|
|
48
|
+
{27, 12, 26, 10, 24, {14, {{1, 16 }, {0, 0}}}},
|
|
49
|
+
{28, 12, 36, 10, 16, {18, {{1, 22 }, {0, 0}}}},
|
|
50
|
+
{29, 16, 36, 14, 16, {24, {{1, 32 }, {0, 0}}}},
|
|
51
|
+
{30, 16, 48, 14, 22, {28, {{1, 49 }, {0, 0}}}},
|
|
52
|
+
|
|
53
|
+
// DMRE
|
|
54
|
+
{31, 8, 48, 6, 22, {15, {{1, 18 }, {0, 0}}}},
|
|
55
|
+
{32, 8, 64, 6, 14, {18, {{1, 24 }, {0, 0}}}},
|
|
56
|
+
{33, 8, 80, 6, 18, {22, {{1, 32 }, {0, 0}}}},
|
|
57
|
+
{34, 8, 96, 6, 22, {28, {{1, 38 }, {0, 0}}}},
|
|
58
|
+
{35, 8, 120, 6, 18, {32, {{1, 49 }, {0, 0}}}},
|
|
59
|
+
{36, 8, 144, 6, 22, {36, {{1, 63 }, {0, 0}}}},
|
|
60
|
+
{37, 12, 64, 10, 14, {27, {{1, 43 }, {0, 0}}}},
|
|
61
|
+
{38, 12, 88, 10, 20, {36, {{1, 64 }, {0, 0}}}},
|
|
62
|
+
{39, 16, 64, 14, 14, {36, {{1, 62 }, {0, 0}}}},
|
|
63
|
+
{40, 20, 36, 18, 16, {28, {{1, 44 }, {0, 0}}}},
|
|
64
|
+
{41, 20, 44, 18, 20, {34, {{1, 56 }, {0, 0}}}},
|
|
65
|
+
{42, 20, 64, 18, 14, {42, {{1, 84 }, {0, 0}}}},
|
|
66
|
+
{43, 22, 48, 20, 22, {38, {{1, 72 }, {0, 0}}}},
|
|
67
|
+
{44, 24, 48, 22, 22, {41, {{1, 80 }, {0, 0}}}},
|
|
68
|
+
{45, 24, 64, 22, 14, {46, {{1, 108}, {0, 0}}}},
|
|
69
|
+
{46, 26, 40, 24, 18, {38, {{1, 70 }, {0, 0}}}},
|
|
70
|
+
{47, 26, 48, 24, 22, {42, {{1, 90 }, {0, 0}}}},
|
|
71
|
+
{48, 26, 64, 24, 14, {50, {{1, 118}, {0, 0}}}},
|
|
72
|
+
// clang-format on
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
for (auto& version : allVersions)
|
|
76
|
+
if (version.symbolHeight == height && version.symbolWidth == width)
|
|
77
|
+
return &version;
|
|
78
|
+
|
|
79
|
+
return nullptr;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Nu-book Inc.
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
namespace ZXing::DataMatrix {
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The Version object encapsulates attributes about a particular Data Matrix Symbol size.
|
|
13
|
+
*/
|
|
14
|
+
class Version
|
|
15
|
+
{
|
|
16
|
+
public:
|
|
17
|
+
/**
|
|
18
|
+
* Encapsulates a set of error-correction blocks in one symbol version. Most versions will
|
|
19
|
+
* use blocks of differing sizes within one version, so, this encapsulates the parameters for
|
|
20
|
+
* each set of blocks. It also holds the number of error-correction codewords per block since it
|
|
21
|
+
* will be the same across all blocks within one version.
|
|
22
|
+
*/
|
|
23
|
+
struct ECBlocks
|
|
24
|
+
{
|
|
25
|
+
int codewordsPerBlock;
|
|
26
|
+
|
|
27
|
+
/* Encapsulates the parameters for one error-correction block in one symbol version.
|
|
28
|
+
* This includes the number of data codewords, and the number of times a block with these
|
|
29
|
+
* parameters is used consecutively in the Data Matrix code version's format.
|
|
30
|
+
*/
|
|
31
|
+
struct
|
|
32
|
+
{
|
|
33
|
+
int count;
|
|
34
|
+
int dataCodewords;
|
|
35
|
+
} const blocks[2];
|
|
36
|
+
|
|
37
|
+
int numBlocks() const { return blocks[0].count + blocks[1].count; }
|
|
38
|
+
|
|
39
|
+
int totalDataCodewords() const
|
|
40
|
+
{
|
|
41
|
+
return blocks[0].count * (blocks[0].dataCodewords + codewordsPerBlock) +
|
|
42
|
+
blocks[1].count * (blocks[1].dataCodewords + codewordsPerBlock);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const int versionNumber;
|
|
47
|
+
const int symbolHeight;
|
|
48
|
+
const int symbolWidth;
|
|
49
|
+
const int dataBlockHeight;
|
|
50
|
+
const int dataBlockWidth;
|
|
51
|
+
const ECBlocks ecBlocks;
|
|
52
|
+
|
|
53
|
+
int totalCodewords() const { return ecBlocks.totalDataCodewords(); }
|
|
54
|
+
int dataWidth() const { return (symbolWidth / dataBlockWidth) * dataBlockWidth; }
|
|
55
|
+
int dataHeight() const { return (symbolHeight / dataBlockHeight) * dataBlockHeight; }
|
|
56
|
+
int dataBlocksX() const { return symbolWidth / dataBlockWidth; }
|
|
57
|
+
int dataBlocksY() const { return symbolHeight / dataBlockHeight; }
|
|
58
|
+
bool isDMRE() const { return versionNumber >= 31 && versionNumber <= 48; }
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @brief Looks up Version information based on symbol dimensions.
|
|
63
|
+
*
|
|
64
|
+
* @param height Number of rows in modules
|
|
65
|
+
* @param width Number of columns in modules
|
|
66
|
+
* @return Version for a Data Matrix Code of those dimensions, nullptr for invalid dimensions
|
|
67
|
+
*/
|
|
68
|
+
const Version* VersionForDimensions(int height, int width);
|
|
69
|
+
|
|
70
|
+
template<typename MAT>
|
|
71
|
+
const Version* VersionForDimensionsOf(const MAT& mat)
|
|
72
|
+
{
|
|
73
|
+
return VersionForDimensions(mat.height(), mat.width());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#include "DMWriter.h"
|
|
8
|
+
|
|
9
|
+
#include "BitMatrix.h"
|
|
10
|
+
#include "ByteArray.h"
|
|
11
|
+
#include "CharacterSet.h"
|
|
12
|
+
#include "DMBitLayout.h"
|
|
13
|
+
#include "DMECEncoder.h"
|
|
14
|
+
#include "DMHighLevelEncoder.h"
|
|
15
|
+
#include "DMSymbolInfo.h"
|
|
16
|
+
#include "Utf.h"
|
|
17
|
+
|
|
18
|
+
#include <stdexcept>
|
|
19
|
+
#include <string>
|
|
20
|
+
#include <utility>
|
|
21
|
+
|
|
22
|
+
namespace ZXing::DataMatrix {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Encode the given symbol info to a bit matrix.
|
|
26
|
+
*
|
|
27
|
+
* @param placement The DataMatrix placement.
|
|
28
|
+
* @param symbolInfo The symbol info to encode.
|
|
29
|
+
* @return The bit matrix generated.
|
|
30
|
+
*/
|
|
31
|
+
static BitMatrix EncodeLowLevel(const BitMatrix& placement, const SymbolInfo& symbolInfo) {
|
|
32
|
+
int symbolWidth = symbolInfo.symbolDataWidth();
|
|
33
|
+
int symbolHeight = symbolInfo.symbolDataHeight();
|
|
34
|
+
|
|
35
|
+
BitMatrix matrix(symbolInfo.symbolWidth(), symbolInfo.symbolHeight());
|
|
36
|
+
int matrixY = 0;
|
|
37
|
+
for (int y = 0; y < symbolHeight; y++) {
|
|
38
|
+
// Fill the top edge with alternate 0 / 1
|
|
39
|
+
int matrixX;
|
|
40
|
+
if ((y % symbolInfo.matrixHeight()) == 0) {
|
|
41
|
+
matrixX = 0;
|
|
42
|
+
for (int x = 0; x < matrix.width(); x++) {
|
|
43
|
+
matrix.set(matrixX, matrixY, (x % 2) == 0);
|
|
44
|
+
matrixX++;
|
|
45
|
+
}
|
|
46
|
+
matrixY++;
|
|
47
|
+
}
|
|
48
|
+
matrixX = 0;
|
|
49
|
+
for (int x = 0; x < symbolWidth; x++) {
|
|
50
|
+
// Fill the right edge with full 1
|
|
51
|
+
if ((x % symbolInfo.matrixWidth()) == 0) {
|
|
52
|
+
matrix.set(matrixX, matrixY, true);
|
|
53
|
+
matrixX++;
|
|
54
|
+
}
|
|
55
|
+
matrix.set(matrixX, matrixY, placement.get(x, y) == 1);
|
|
56
|
+
matrixX++;
|
|
57
|
+
// Fill the right edge with alternate 0 / 1
|
|
58
|
+
if ((x % symbolInfo.matrixWidth()) == symbolInfo.matrixWidth() - 1) {
|
|
59
|
+
matrix.set(matrixX, matrixY, (y % 2) == 0);
|
|
60
|
+
matrixX++;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
matrixY++;
|
|
64
|
+
// Fill the bottom edge with full 1
|
|
65
|
+
if ((y % symbolInfo.matrixHeight()) == symbolInfo.matrixHeight() - 1) {
|
|
66
|
+
matrixX = 0;
|
|
67
|
+
for (int x = 0; x < matrix.width(); x++) {
|
|
68
|
+
matrix.set(matrixX, matrixY, true);
|
|
69
|
+
matrixX++;
|
|
70
|
+
}
|
|
71
|
+
matrixY++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return matrix;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
BitMatrix
|
|
79
|
+
Writer::encode(const std::wstring& contents, int width, int height) const
|
|
80
|
+
{
|
|
81
|
+
if (contents.empty()) {
|
|
82
|
+
throw std::invalid_argument("Found empty contents");
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (width < 0 || height < 0) {
|
|
86
|
+
throw std::invalid_argument("Requested dimensions are invalid");
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//1. step: Data encodation
|
|
90
|
+
auto encoded = Encode(contents, _encoding, _shapeHint, _minWidth, _minHeight, _maxWidth, _maxHeight);
|
|
91
|
+
const SymbolInfo* symbolInfo = SymbolInfo::Lookup(Size(encoded), _shapeHint, _minWidth, _minHeight, _maxWidth, _maxHeight);
|
|
92
|
+
if (symbolInfo == nullptr) {
|
|
93
|
+
throw std::invalid_argument("Can't find a symbol arrangement that matches the message. Data codewords: " + std::to_string(encoded.size()));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//2. step: ECC generation
|
|
97
|
+
EncodeECC200(encoded, *symbolInfo);
|
|
98
|
+
|
|
99
|
+
//3. step: Module placement in Matrix
|
|
100
|
+
BitMatrix symbolData = BitMatrixFromCodewords(encoded, symbolInfo->symbolDataWidth(), symbolInfo->symbolDataHeight());
|
|
101
|
+
|
|
102
|
+
//4. step: low-level encoding
|
|
103
|
+
BitMatrix result = EncodeLowLevel(symbolData, *symbolInfo);
|
|
104
|
+
|
|
105
|
+
//5. step: scale-up to requested size, minimum required quiet zone is 1
|
|
106
|
+
return Inflate(std::move(result), width, height, _quietZone);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
BitMatrix Writer::encode(const std::string& contents, int width, int height) const
|
|
110
|
+
{
|
|
111
|
+
return encode(FromUtf8(contents), width, height);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
} // namespace ZXing::DataMatrix
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#pragma once
|
|
8
|
+
|
|
9
|
+
#include "CharacterSet.h"
|
|
10
|
+
#include "DMSymbolShape.h"
|
|
11
|
+
|
|
12
|
+
#include <string>
|
|
13
|
+
|
|
14
|
+
namespace ZXing {
|
|
15
|
+
|
|
16
|
+
class BitMatrix;
|
|
17
|
+
|
|
18
|
+
namespace DataMatrix {
|
|
19
|
+
|
|
20
|
+
class Writer
|
|
21
|
+
{
|
|
22
|
+
public:
|
|
23
|
+
Writer() = default;
|
|
24
|
+
|
|
25
|
+
Writer& setMargin(int margin) {
|
|
26
|
+
_quietZone = margin;
|
|
27
|
+
return *this;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Writer& setShapeHint(SymbolShape shape) {
|
|
31
|
+
_shapeHint = shape;
|
|
32
|
+
return *this;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
Writer& setMinSize(int width, int height) {
|
|
36
|
+
_minWidth = width;
|
|
37
|
+
_minHeight = height;
|
|
38
|
+
return *this;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
Writer& setMaxSize(int width, int height) {
|
|
42
|
+
_maxWidth = width;
|
|
43
|
+
_maxHeight = height;
|
|
44
|
+
return *this;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
Writer& setEncoding(CharacterSet encoding) {
|
|
48
|
+
_encoding = encoding;
|
|
49
|
+
return *this;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
BitMatrix encode(const std::wstring& contents, int width, int height) const;
|
|
53
|
+
BitMatrix encode(const std::string& contents, int width, int height) const;
|
|
54
|
+
|
|
55
|
+
private:
|
|
56
|
+
SymbolShape _shapeHint = SymbolShape::NONE;
|
|
57
|
+
int _quietZone = 1, _minWidth = -1, _minHeight = -1, _maxWidth = -1, _maxHeight = -1;
|
|
58
|
+
CharacterSet _encoding = CharacterSet::Unknown;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // DataMatrix
|
|
62
|
+
} // ZXing
|