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,127 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Nu-book Inc.
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
* Copyright 2023 Axel Waggershauser
|
|
5
|
+
*/
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "Point.h"
|
|
11
|
+
#include "QRECB.h"
|
|
12
|
+
#include "QRErrorCorrectionLevel.h"
|
|
13
|
+
#include "ZXAlgorithms.h"
|
|
14
|
+
|
|
15
|
+
#include <array>
|
|
16
|
+
#include <initializer_list>
|
|
17
|
+
#include <vector>
|
|
18
|
+
|
|
19
|
+
namespace ZXing {
|
|
20
|
+
|
|
21
|
+
class BitMatrix;
|
|
22
|
+
|
|
23
|
+
namespace QRCode {
|
|
24
|
+
|
|
25
|
+
// clang-format off
|
|
26
|
+
constexpr std::array<PointI, 32> RMQR_SIZES {
|
|
27
|
+
PointI{43, 7}, {59, 7}, {77, 7}, {99, 7}, {139, 7},
|
|
28
|
+
{43, 9}, {59, 9}, {77, 9}, {99, 9}, {139, 9},
|
|
29
|
+
{27, 11}, {43, 11}, {59, 11}, {77, 11}, {99, 11}, {139, 11},
|
|
30
|
+
{27, 13}, {43, 13}, {59, 13}, {77, 13}, {99, 13}, {139, 13},
|
|
31
|
+
{43, 15}, {59, 15}, {77, 15}, {99, 15}, {139, 15},
|
|
32
|
+
{43, 17}, {59, 17}, {77, 17}, {99, 17}, {139, 17},
|
|
33
|
+
};
|
|
34
|
+
// clang-format on
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* See ISO 18004:2006 Annex D
|
|
38
|
+
*/
|
|
39
|
+
class Version
|
|
40
|
+
{
|
|
41
|
+
public:
|
|
42
|
+
Type type() const { return _type; }
|
|
43
|
+
bool isMicro() const { return type() == Type::Micro; }
|
|
44
|
+
bool isRMQR() const { return type() == Type::rMQR; }
|
|
45
|
+
bool isModel1() const { return type() == Type::Model1; }
|
|
46
|
+
bool isModel2() const { return type() == Type::Model2; }
|
|
47
|
+
|
|
48
|
+
int versionNumber() const { return _versionNumber; }
|
|
49
|
+
|
|
50
|
+
const std::vector<int>& alignmentPatternCenters() const { return _alignmentPatternCenters; }
|
|
51
|
+
|
|
52
|
+
int totalCodewords() const { return _totalCodewords; }
|
|
53
|
+
|
|
54
|
+
int dimension() const { return SymbolSize(versionNumber(), isMicro() ? Type::Micro : Type::Model2).x; }
|
|
55
|
+
|
|
56
|
+
const ECBlocks& ecBlocksForLevel(ErrorCorrectionLevel ecLevel) const { return _ecBlocks[(int)ecLevel]; }
|
|
57
|
+
|
|
58
|
+
BitMatrix buildFunctionPattern() const;
|
|
59
|
+
|
|
60
|
+
static constexpr PointI SymbolSize(int version, Type type)
|
|
61
|
+
{
|
|
62
|
+
auto square = [](int s) { return PointI(s, s); };
|
|
63
|
+
auto valid = [](int v, int max) { return v >= 1 && v <= max; };
|
|
64
|
+
|
|
65
|
+
switch (type) {
|
|
66
|
+
case Type::Model1: return valid(version, 32) ? square(17 + 4 * version) : PointI{};
|
|
67
|
+
case Type::Model2: return valid(version, 40) ? square(17 + 4 * version) : PointI{};
|
|
68
|
+
case Type::Micro: return valid(version, 4) ? square(9 + 2 * version) : PointI{};
|
|
69
|
+
case Type::rMQR: return valid(version, 32) ? RMQR_SIZES[version - 1] : PointI{};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return {}; // silence warning
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static constexpr bool IsValidSize(PointI size, Type type)
|
|
76
|
+
{
|
|
77
|
+
switch (type) {
|
|
78
|
+
case Type::Model1: return size.x == size.y && size.x >= 21 && size.x <= 145 && (size.x % 4 == 1);
|
|
79
|
+
case Type::Model2: return size.x == size.y && size.x >= 21 && size.x <= 177 && (size.x % 4 == 1);
|
|
80
|
+
case Type::Micro: return size.x == size.y && size.x >= 11 && size.x <= 17 && (size.x % 2 == 1);
|
|
81
|
+
case Type::rMQR:
|
|
82
|
+
return size.x != size.y && size.x & 1 && size.y & 1 && size.x >= 27 && size.x <= 139 && size.y >= 7 && size.y <= 17
|
|
83
|
+
&& IndexOf(RMQR_SIZES, size) != -1;
|
|
84
|
+
}
|
|
85
|
+
return {}; // silence warning
|
|
86
|
+
}
|
|
87
|
+
static bool HasValidSize(const BitMatrix& bitMatrix, Type type);
|
|
88
|
+
|
|
89
|
+
static bool HasValidSize(const BitMatrix& matrix)
|
|
90
|
+
{
|
|
91
|
+
return HasValidSize(matrix, Type::Model1) || HasValidSize(matrix, Type::Model2) || HasValidSize(matrix, Type::Micro)
|
|
92
|
+
|| HasValidSize(matrix, Type::rMQR);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
static constexpr int Number(PointI size)
|
|
96
|
+
{
|
|
97
|
+
if (size.x != size.y)
|
|
98
|
+
return IndexOf(RMQR_SIZES, size) + 1;
|
|
99
|
+
if (IsValidSize(size, Type::Model2))
|
|
100
|
+
return (size.x - 17) / 4;
|
|
101
|
+
if (IsValidSize(size, Type::Micro))
|
|
102
|
+
return (size.x - 9) / 2;
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static int Number(const BitMatrix& bitMatrix);
|
|
107
|
+
|
|
108
|
+
static const Version* DecodeVersionInformation(int versionBitsA, int versionBitsB = 0);
|
|
109
|
+
|
|
110
|
+
static const Version* Model1(int number);
|
|
111
|
+
static const Version* Model2(int number);
|
|
112
|
+
static const Version* Micro(int number);
|
|
113
|
+
static const Version* rMQR(int number);
|
|
114
|
+
|
|
115
|
+
private:
|
|
116
|
+
int _versionNumber;
|
|
117
|
+
std::vector<int> _alignmentPatternCenters;
|
|
118
|
+
std::array<ECBlocks, 4> _ecBlocks;
|
|
119
|
+
int _totalCodewords;
|
|
120
|
+
Type _type;
|
|
121
|
+
|
|
122
|
+
Version(int versionNumber, std::initializer_list<int> alignmentPatternCenters, const std::array<ECBlocks, 4> &ecBlocks);
|
|
123
|
+
Version(int versionNumber, const std::array<ECBlocks, 4>& ecBlocks);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
} // QRCode
|
|
127
|
+
} // ZXing
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 Huy Cuong Nguyen
|
|
3
|
+
* Copyright 2016 ZXing authors
|
|
4
|
+
*/
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
|
|
7
|
+
#include "QRWriter.h"
|
|
8
|
+
|
|
9
|
+
#include "BitMatrix.h"
|
|
10
|
+
#include "CharacterSet.h"
|
|
11
|
+
#include "QREncodeResult.h"
|
|
12
|
+
#include "QREncoder.h"
|
|
13
|
+
#include "QRErrorCorrectionLevel.h"
|
|
14
|
+
#include "Utf.h"
|
|
15
|
+
|
|
16
|
+
#include <stdexcept>
|
|
17
|
+
#include <utility>
|
|
18
|
+
|
|
19
|
+
namespace ZXing::QRCode {
|
|
20
|
+
|
|
21
|
+
static const int QUIET_ZONE_SIZE = 4;
|
|
22
|
+
|
|
23
|
+
Writer::Writer()
|
|
24
|
+
: _margin(QUIET_ZONE_SIZE),
|
|
25
|
+
_ecLevel(ErrorCorrectionLevel::Low),
|
|
26
|
+
_encoding(CharacterSet::Unknown),
|
|
27
|
+
_version(0),
|
|
28
|
+
_useGs1Format(false),
|
|
29
|
+
_maskPattern(-1)
|
|
30
|
+
{}
|
|
31
|
+
|
|
32
|
+
BitMatrix Writer::encode(const std::wstring& contents, int width, int height) const
|
|
33
|
+
{
|
|
34
|
+
if (contents.empty()) {
|
|
35
|
+
throw std::invalid_argument("Found empty contents");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (width < 0 || height < 0) {
|
|
39
|
+
throw std::invalid_argument("Requested dimensions are invalid");
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
EncodeResult code = Encode(contents, _ecLevel, _encoding, _version, _useGs1Format, _maskPattern);
|
|
43
|
+
return Inflate(std::move(code.matrix), width, height, _margin);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
BitMatrix Writer::encode(const std::string& contents, int width, int height) const
|
|
47
|
+
{
|
|
48
|
+
return encode(FromUtf8(contents), width, height);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
} // namespace ZXing::QRCode
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
|
|
11
|
+
#include <string>
|
|
12
|
+
|
|
13
|
+
namespace ZXing {
|
|
14
|
+
|
|
15
|
+
class BitMatrix;
|
|
16
|
+
|
|
17
|
+
namespace QRCode {
|
|
18
|
+
|
|
19
|
+
enum class ErrorCorrectionLevel;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This object renders a QR Code as a BitMatrix 2D array of greyscale values.
|
|
23
|
+
*
|
|
24
|
+
* @author dswitkin@google.com (Daniel Switkin)
|
|
25
|
+
*/
|
|
26
|
+
class Writer
|
|
27
|
+
{
|
|
28
|
+
public:
|
|
29
|
+
Writer();
|
|
30
|
+
|
|
31
|
+
Writer& setMargin(int margin) {
|
|
32
|
+
_margin = margin;
|
|
33
|
+
return *this;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
Writer& setErrorCorrectionLevel(ErrorCorrectionLevel ecLevel) {
|
|
37
|
+
_ecLevel = ecLevel;
|
|
38
|
+
return *this;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
Writer& setEncoding(CharacterSet encoding) {
|
|
42
|
+
_encoding = encoding;
|
|
43
|
+
return *this;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
Writer& setVersion(int versionNumber) {
|
|
47
|
+
_version = versionNumber;
|
|
48
|
+
return *this;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
Writer& useGS1Format() {
|
|
52
|
+
_useGs1Format = true;
|
|
53
|
+
return *this;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
Writer& setMaskPattern(int pattern) {
|
|
57
|
+
_maskPattern = pattern;
|
|
58
|
+
return *this;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
BitMatrix encode(const std::wstring& contents, int width, int height) const;
|
|
62
|
+
BitMatrix encode(const std::string& contents, int width, int height) const;
|
|
63
|
+
|
|
64
|
+
private:
|
|
65
|
+
int _margin;
|
|
66
|
+
ErrorCorrectionLevel _ecLevel;
|
|
67
|
+
CharacterSet _encoding;
|
|
68
|
+
int _version;
|
|
69
|
+
bool _useGs1Format;
|
|
70
|
+
int _maskPattern;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
} // QRCode
|
|
74
|
+
} // ZXing
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Windows resource file - Add version information to DLL
|
|
2
|
+
#include <windows.h>
|
|
3
|
+
|
|
4
|
+
VS_VERSION_INFO VERSIONINFO
|
|
5
|
+
FILEVERSION @FILE_VERSION_COMMA@
|
|
6
|
+
PRODUCTVERSION @FILE_VERSION_COMMA@
|
|
7
|
+
FILEFLAGSMASK 0x3fL
|
|
8
|
+
#ifdef _DEBUG
|
|
9
|
+
FILEFLAGS 0x1L
|
|
10
|
+
#else
|
|
11
|
+
FILEFLAGS 0x0L
|
|
12
|
+
#endif
|
|
13
|
+
FILEOS 0x40004L
|
|
14
|
+
FILETYPE 0x2L
|
|
15
|
+
FILESUBTYPE 0x0L
|
|
16
|
+
BEGIN
|
|
17
|
+
BLOCK "StringFileInfo"
|
|
18
|
+
BEGIN
|
|
19
|
+
BLOCK "040904b0" // en-US, Unicode
|
|
20
|
+
BEGIN
|
|
21
|
+
VALUE "CompanyName", "zxing-cpp"
|
|
22
|
+
VALUE "FileDescription", "ZXing-C++ Barcode Library"
|
|
23
|
+
VALUE "FileVersion", "@FILE_VERSION_STR@"
|
|
24
|
+
VALUE "InternalName", "ZXing"
|
|
25
|
+
VALUE "LegalCopyright", "Copyright (C) zxing-cpp contributors"
|
|
26
|
+
VALUE "ProductName", "ZXing-C++"
|
|
27
|
+
VALUE "ProductVersion", "@FILE_VERSION_STR@"
|
|
28
|
+
END
|
|
29
|
+
END
|
|
30
|
+
BLOCK "VarFileInfo"
|
|
31
|
+
BEGIN
|
|
32
|
+
VALUE "Translation", 0x0409, 1200
|
|
33
|
+
END
|
|
34
|
+
END
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ZXingCpp iOS Framework
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
### SwiftPM
|
|
6
|
+
|
|
7
|
+
As this repository provides a `Package.swift` on the root level, so you can add `zxing-cpp` including wrapper code by adding a Package Dependency in Xcode.
|
|
8
|
+
|
|
9
|
+
An alternative way is to check this repository out and add it as a local Swift Package by adding it as a dependency to your app.
|
|
10
|
+
|
|
11
|
+
### CocoaPods
|
|
12
|
+
|
|
13
|
+
You can also use [CocoaPods](https://cocoapods.org/pods/zxing-cpp). Just add the Pod as a dependency:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
pod 'zxing-cpp'
|
|
17
|
+
```
|
|
18
|
+
The module to be imported is named `ZXingCpp`. If you just need the core without the wrapper code, you can use:
|
|
19
|
+
```
|
|
20
|
+
pod 'zxing-cpp/Core'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
For general usage of the ObjectiveC/Swift wrapper, please have a look at the source code provided in the [demo project](demo).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Axel Waggershauser
|
|
3
|
+
*/
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
|
|
6
|
+
// This header a 'manual' rendition of Version.h.in for the iOS (SwiftPM / Cocoapods) build systems that don't use cmake
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#define ZXING_READERS
|
|
11
|
+
#define ZXING_WRITERS
|
|
12
|
+
|
|
13
|
+
#define ZXING_ENABLE_1D 1
|
|
14
|
+
#define ZXING_ENABLE_AZTEC 1
|
|
15
|
+
#define ZXING_ENABLE_DATAMATRIX 1
|
|
16
|
+
#define ZXING_ENABLE_MAXICODE 1
|
|
17
|
+
#define ZXING_ENABLE_PDF417 1
|
|
18
|
+
#define ZXING_ENABLE_QRCODE 1
|
|
19
|
+
|
|
20
|
+
// #define ZXING_EXPERIMENTAL_API
|
|
21
|
+
// #define ZXING_USE_ZINT
|
|
22
|
+
|
|
23
|
+
// Version numbering
|
|
24
|
+
#define ZXING_VERSION_MAJOR 3
|
|
25
|
+
#define ZXING_VERSION_MINOR 1
|
|
26
|
+
#define ZXING_VERSION_PATCH 1
|
|
27
|
+
#define ZXING_VERSION_SUFFIX "" // e.g. "-rc1"
|
|
28
|
+
|
|
29
|
+
#define ZXING_VERSION_STR "3.1.1" ZXING_VERSION_SUFFIX
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Pod::Spec.new do |s|
|
|
2
|
+
s.name = 'zxing-cpp'
|
|
3
|
+
s.version = '3.1.1'
|
|
4
|
+
s.summary = 'C++ port of ZXing'
|
|
5
|
+
s.homepage = 'https://github.com/zxing-cpp/zxing-cpp'
|
|
6
|
+
s.author = 'axxel'
|
|
7
|
+
s.readme = 'https://raw.githubusercontent.com/zxing-cpp/zxing-cpp/master/wrappers/ios/README.md'
|
|
8
|
+
s.license = {
|
|
9
|
+
:type => 'Apache License 2.0',
|
|
10
|
+
:file => 'LICENSE'
|
|
11
|
+
}
|
|
12
|
+
s.source = {
|
|
13
|
+
:git => 'https://github.com/zxing-cpp/zxing-cpp.git',
|
|
14
|
+
:tag => "v#{s.version}"
|
|
15
|
+
}
|
|
16
|
+
s.module_name = 'ZXingCpp'
|
|
17
|
+
s.platform = :ios, '12.0'
|
|
18
|
+
s.library = ['c++']
|
|
19
|
+
s.compiler_flags = [
|
|
20
|
+
'-DZXING_INTERNAL',
|
|
21
|
+
'-Wno-comma'
|
|
22
|
+
]
|
|
23
|
+
s.pod_target_xcconfig = {
|
|
24
|
+
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20',
|
|
25
|
+
'HEADER_SEARCH_PATHS' => '$(PODS_TARGET_SRCROOT)/wrappers/ios/Sources/Wrapper'
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
s.default_subspec = 'Wrapper'
|
|
29
|
+
|
|
30
|
+
s.subspec 'Core' do |ss|
|
|
31
|
+
ss.source_files = 'core/src/**/*.{h,c,cpp}'
|
|
32
|
+
ss.exclude_files = [ 'core/src/libzint/**' ]
|
|
33
|
+
ss.private_header_files = 'core/src/**/*.h'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
s.subspec 'Wrapper' do |ss|
|
|
37
|
+
ss.dependency 'zxing-cpp/Core'
|
|
38
|
+
ss.frameworks = 'CoreGraphics', 'CoreImage', 'CoreVideo'
|
|
39
|
+
ss.source_files = 'wrappers/ios/Sources/Wrapper/**/*.{h,m,mm}'
|
|
40
|
+
ss.public_header_files = 'wrappers/ios/Sources/Wrapper/Reader/{ZXIBarcodeReader,ZXIResult,ZXIPosition,ZXIPoint,ZXIGTIN,ZXIReaderOptions}.h',
|
|
41
|
+
'wrappers/ios/Sources/Wrapper/Writer/{ZXIBarcodeWriter,ZXIWriterOptions}.h',
|
|
42
|
+
'wrappers/ios/Sources/Wrapper/{ZXIErrors,ZXIFormat}.h'
|
|
43
|
+
ss.exclude_files = 'wrappers/ios/Sources/Wrapper/UmbrellaHeader.h'
|
|
44
|
+
end
|
|
45
|
+
end
|
package/lib/factory.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BarcodeScanner } from './specs/BarcodeScanner.nitro';
|
|
2
|
+
import type { BarcodeScannerOptions } from './specs/BarcodeScannerFactory.nitro';
|
|
3
|
+
/**
|
|
4
|
+
* Create a new {@linkcode BarcodeScanner}.
|
|
5
|
+
*
|
|
6
|
+
* The {@linkcode BarcodeScanner} can be used to
|
|
7
|
+
* scan {@linkcode Barcode}s in a {@linkcode Frame} or
|
|
8
|
+
* an existing {@linkcode Image}.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createBarcodeScanner(options: BarcodeScannerOptions): BarcodeScanner;
|
package/lib/factory.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
2
|
+
const factory = NitroModules.createHybridObject('ZXingBarcodeScannerFactory');
|
|
3
|
+
/**
|
|
4
|
+
* Create a new {@linkcode BarcodeScanner}.
|
|
5
|
+
*
|
|
6
|
+
* The {@linkcode BarcodeScanner} can be used to
|
|
7
|
+
* scan {@linkcode Barcode}s in a {@linkcode Frame} or
|
|
8
|
+
* an existing {@linkcode Image}.
|
|
9
|
+
*/
|
|
10
|
+
export function createBarcodeScanner(options) {
|
|
11
|
+
return factory.createBarcodeScanner(options);
|
|
12
|
+
}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './factory';
|
|
2
|
+
export * from './specs/Barcode.nitro';
|
|
3
|
+
export * from './specs/BarcodeFormat';
|
|
4
|
+
export * from './specs/BarcodeScanner.nitro';
|
|
5
|
+
export * from './specs/BarcodeScannerFactory.nitro';
|
|
6
|
+
export * from './specs/BarcodeValueType';
|
|
7
|
+
export * from './specs/Point';
|
|
8
|
+
export * from './specs/Rect';
|
|
9
|
+
export * from './useBarcodeScanner';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './factory';
|
|
2
|
+
export * from './specs/Barcode.nitro';
|
|
3
|
+
export * from './specs/BarcodeFormat';
|
|
4
|
+
export * from './specs/BarcodeScanner.nitro';
|
|
5
|
+
export * from './specs/BarcodeScannerFactory.nitro';
|
|
6
|
+
export * from './specs/BarcodeValueType';
|
|
7
|
+
export * from './specs/Point';
|
|
8
|
+
export * from './specs/Rect';
|
|
9
|
+
export * from './useBarcodeScanner';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import type { BarcodeFormat } from './BarcodeFormat';
|
|
3
|
+
import type { BarcodeValueType } from './BarcodeValueType';
|
|
4
|
+
import type { Point } from './Point';
|
|
5
|
+
import type { Rect } from './Rect';
|
|
6
|
+
/**
|
|
7
|
+
* Represents a single detected Barcode.
|
|
8
|
+
*
|
|
9
|
+
* A {@linkcode Barcode} is produced via the
|
|
10
|
+
* {@linkcode BarcodeScanner} (see
|
|
11
|
+
* {@linkcode createBarcodeScanner | createBarcodeScanner(...)}).
|
|
12
|
+
*
|
|
13
|
+
* See {@linkcode BarcodeScanner.scanCodes | BarcodeScanner.scanCodes(...)}
|
|
14
|
+
* and {@linkcode BarcodeScanner.scanCodesInImageAsync | BarcodeScanner.scanCodesInImageAsync(...)}
|
|
15
|
+
* for information about Barcode coordinate systems.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const barcode = ...
|
|
20
|
+
* console.log(`Barcode value: ${barcode.rawValue}`)
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export interface Barcode extends HybridObject<{
|
|
24
|
+
ios: 'c++';
|
|
25
|
+
android: 'c++';
|
|
26
|
+
}> {
|
|
27
|
+
/**
|
|
28
|
+
* Get the format of this {@linkcode Barcode}.
|
|
29
|
+
* @see {@linkcode BarcodeFormat}
|
|
30
|
+
*/
|
|
31
|
+
readonly format: BarcodeFormat;
|
|
32
|
+
/**
|
|
33
|
+
* Get the {@linkcode Barcode}'s bounding box.
|
|
34
|
+
*
|
|
35
|
+
* The coordinates are relative to the input {@linkcode Frame}
|
|
36
|
+
* or {@linkcode Image}.
|
|
37
|
+
*/
|
|
38
|
+
readonly boundingBox: Rect;
|
|
39
|
+
/**
|
|
40
|
+
* Get the {@linkcode Barcode}'s corner points.
|
|
41
|
+
*
|
|
42
|
+
* The coordinates are relative to the input {@linkcode Frame}
|
|
43
|
+
* or {@linkcode Image}.
|
|
44
|
+
*/
|
|
45
|
+
readonly cornerPoints: Point[];
|
|
46
|
+
/**
|
|
47
|
+
* Get the {@linkcode Barcode}'s value in a user-friendly format.
|
|
48
|
+
*/
|
|
49
|
+
readonly displayValue: string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Get the {@linkcode Barcode}'s value in raw bytes.
|
|
52
|
+
*/
|
|
53
|
+
readonly rawBytes: ArrayBuffer | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Get the {@linkcode Barcode}'s raw value as a string.
|
|
56
|
+
*/
|
|
57
|
+
readonly rawValue: string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Get the {@linkcode Barcode}'s value's type.
|
|
60
|
+
* @see {@linkcode BarcodeValueType}
|
|
61
|
+
*/
|
|
62
|
+
readonly valueType: BarcodeValueType;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a detected {@linkcode Barcode}'s format, or
|
|
3
|
+
* `'unknown'` if the format of a scanned Barcode could not be
|
|
4
|
+
* determined.
|
|
5
|
+
*/
|
|
6
|
+
export type BarcodeFormat = 'unknown' | 'code-128' | 'code-39' | 'code-93' | 'codabar' | 'data-matrix' | 'ean-13' | 'ean-8' | 'itf' | 'qr-code' | 'upc-a' | 'upc-e' | 'pdf-417' | 'aztec';
|
|
7
|
+
/**
|
|
8
|
+
* Represents a target {@linkcode BarcodeFormat} that the {@linkcode BarcodeScanner}
|
|
9
|
+
* can be configured to scan for, or `'all-formats'` to scan for every supported format.
|
|
10
|
+
*/
|
|
11
|
+
export type TargetBarcodeFormat = Exclude<BarcodeFormat, 'unknown'> | 'all-formats';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Image } from 'react-native-nitro-image';
|
|
2
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
3
|
+
import type { Frame } from 'react-native-vision-camera';
|
|
4
|
+
import type { Barcode } from './Barcode.nitro';
|
|
5
|
+
/**
|
|
6
|
+
* Represents a Barcode Scanner that uses ZXing (zxing-cpp).
|
|
7
|
+
*
|
|
8
|
+
* The {@linkcode BarcodeScanner} can be used in a
|
|
9
|
+
* Frame Processor by calling {@linkcode BarcodeScanner.scanCodes | scanCodes(...)},
|
|
10
|
+
* or for static images by calling
|
|
11
|
+
* {@linkcode BarcodeScanner.scanCodesInImageAsync | scanCodesInImageAsync(...)}.
|
|
12
|
+
*
|
|
13
|
+
* @see {@linkcode useBarcodeScanner | useBarcodeScanner(...)}
|
|
14
|
+
* @see {@linkcode createBarcodeScanner | createBarcodeScanner(...)}
|
|
15
|
+
*/
|
|
16
|
+
export interface BarcodeScanner extends HybridObject<{
|
|
17
|
+
ios: 'c++';
|
|
18
|
+
android: 'c++';
|
|
19
|
+
}> {
|
|
20
|
+
/**
|
|
21
|
+
* Synchronously detects {@linkcode Barcode}s in the
|
|
22
|
+
* given {@linkcode Frame}.
|
|
23
|
+
*
|
|
24
|
+
* All coordinates in the {@linkcode Barcode} are
|
|
25
|
+
* relative to the {@linkcode Frame}'s coordinate system.
|
|
26
|
+
*
|
|
27
|
+
* You can convert {@linkcode Barcode} coordinates to Camera coordinates using
|
|
28
|
+
* {@linkcode Frame.convertFramePointToCameraPoint | Frame.convertFramePointToCameraPoint(...)},
|
|
29
|
+
* and then convert the Camera coordinates to Preview View coordinates using
|
|
30
|
+
* {@linkcode PreviewViewMethods.convertCameraPointToViewPoint | PreviewViewMethods.convertCameraPointToViewPoint(...)}.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const scanner = // ...
|
|
35
|
+
* const frame = // ...
|
|
36
|
+
* const previewView = // ...
|
|
37
|
+
*
|
|
38
|
+
* const barcodes = scanner.scanCodes(frame)
|
|
39
|
+
* for (const barcode of barcodes) {
|
|
40
|
+
* console.log('Barcode value:', barcode.rawValue)
|
|
41
|
+
* for (const point of barcode.cornerPoints) {
|
|
42
|
+
* const cameraPoint = frame.convertFramePointToCameraPoint(point)
|
|
43
|
+
* const previewPoint = previewView.convertCameraPointToViewPoint(cameraPoint)
|
|
44
|
+
* console.log('Corner Point:', previewPoint)
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
scanCodes(frame: Frame): Barcode[];
|
|
50
|
+
/**
|
|
51
|
+
* Asynchronously detects {@linkcode Barcode}s in the
|
|
52
|
+
* given {@linkcode Frame}.
|
|
53
|
+
*
|
|
54
|
+
* The Frame must remain valid until the returned Promise settles. Do not
|
|
55
|
+
* call {@linkcode Frame.dispose | Frame.dispose()} before awaiting it.
|
|
56
|
+
*
|
|
57
|
+
* @see {@linkcode scanCodes}
|
|
58
|
+
*/
|
|
59
|
+
scanCodesAsync(frame: Frame): Promise<Barcode[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Asynchronously detects {@linkcode Barcode}s in the
|
|
62
|
+
* given {@linkcode Image}.
|
|
63
|
+
*
|
|
64
|
+
* This can be used to scan codes in an existing still image, such as
|
|
65
|
+
* an image loaded from disk, bundled resources or a URL via
|
|
66
|
+
* `react-native-nitro-image`.
|
|
67
|
+
*
|
|
68
|
+
* All coordinates in the returned {@linkcode Barcode}s are relative
|
|
69
|
+
* to the given {@linkcode Image}'s coordinate system.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { loadImage } from 'react-native-nitro-image'
|
|
74
|
+
* import { createBarcodeScanner } from 'react-native-nitro-zxing'
|
|
75
|
+
*
|
|
76
|
+
* const image = await loadImage({ url: 'https://example.com/barcode.png' })
|
|
77
|
+
* const scanner = createBarcodeScanner({ barcodeFormats: ['all-formats'] })
|
|
78
|
+
*
|
|
79
|
+
* try {
|
|
80
|
+
* const barcodes = await scanner.scanCodesInImageAsync(image)
|
|
81
|
+
* console.log('Barcode value:', barcodes[0]?.rawValue)
|
|
82
|
+
* } finally {
|
|
83
|
+
* image.dispose()
|
|
84
|
+
* scanner.dispose()
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
scanCodesInImageAsync(image: Image): Promise<Barcode[]>;
|
|
89
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import type { TargetBarcodeFormat } from './BarcodeFormat';
|
|
3
|
+
import type { BarcodeScanner } from './BarcodeScanner.nitro';
|
|
4
|
+
export interface BarcodeScannerOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Specifies the formats to be used for Barcode
|
|
7
|
+
* scanning.
|
|
8
|
+
*
|
|
9
|
+
* If you want to detect all kinds of barcodes,
|
|
10
|
+
* use {@linkcode TargetBarcodeFormat | ['all-formats']}
|
|
11
|
+
*/
|
|
12
|
+
barcodeFormats: TargetBarcodeFormat[];
|
|
13
|
+
}
|
|
14
|
+
export interface ZXingBarcodeScannerFactory extends HybridObject<{
|
|
15
|
+
ios: 'c++';
|
|
16
|
+
android: 'c++';
|
|
17
|
+
}> {
|
|
18
|
+
/**
|
|
19
|
+
* Create a new {@linkcode BarcodeScanner}.
|
|
20
|
+
*/
|
|
21
|
+
createBarcodeScanner(options: BarcodeScannerOptions): BarcodeScanner;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Alias of {@linkcode ZXingBarcodeScannerFactory}.
|
|
25
|
+
*/
|
|
26
|
+
export type BarcodeScannerFactory = ZXingBarcodeScannerFactory;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the semantic type of data encoded in a {@linkcode Barcode} - e.g.
|
|
3
|
+
* a URL, a phone number, or a WiFi config - or `'unknown'` if the content type
|
|
4
|
+
* could not be classified.
|
|
5
|
+
*
|
|
6
|
+
* This describes **what** the barcode's content represents, not the barcode's
|
|
7
|
+
* visual format (see {@linkcode BarcodeFormat}).
|
|
8
|
+
*/
|
|
9
|
+
export type BarcodeValueType = 'unknown' | 'contact-info' | 'email' | 'isbn' | 'phone' | 'product' | 'sms' | 'text' | 'url' | 'wifi' | 'geo' | 'calendar-event' | 'driver-license';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|