dynamsoft-capture-vision-react-native 3.4.1200 → 3.4.3000
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/LICENSE +5 -5
- package/README.md +62 -66
- package/android/README.md +14 -14
- package/android/build.gradle +167 -163
- package/android/gradle.properties +20 -20
- package/android/settings.gradle +5 -5
- package/android/src/main/AndroidManifest.xml +6 -6
- package/android/src/main/AndroidManifest_noPackage.xml +5 -5
- package/android/src/main/cpp/CMakeLists.txt +21 -21
- package/android/src/main/cpp/ImgHO.cpp +94 -94
- package/android/src/main/cpp/ImgHO.h +34 -34
- package/android/src/main/cpp/JsiCore.cpp +296 -296
- package/android/src/main/cpp/JsiCore.h +51 -51
- package/android/src/main/cpp/JsiCvr.cpp +332 -332
- package/android/src/main/cpp/JsiCvr.h +54 -54
- package/android/src/main/cpp/JsiDbr.cpp +283 -283
- package/android/src/main/cpp/JsiDbr.h +26 -26
- package/android/src/main/cpp/JsiDce.cpp +59 -59
- package/android/src/main/cpp/JsiDce.h +17 -17
- package/android/src/main/cpp/JsiDcp.cpp +51 -51
- package/android/src/main/cpp/JsiDcp.h +31 -31
- package/android/src/main/cpp/JsiDdn.cpp +50 -50
- package/android/src/main/cpp/JsiDdn.h +28 -28
- package/android/src/main/cpp/JsiDlr.cpp +60 -60
- package/android/src/main/cpp/JsiDlr.h +26 -26
- package/android/src/main/cpp/JsiUtility.cpp +604 -604
- package/android/src/main/cpp/JsiUtility.h +26 -26
- package/android/src/main/cpp/RawBuffer.cpp +23 -23
- package/android/src/main/cpp/RawBuffer.h +24 -24
- package/android/src/main/cpp/android_log.h +14 -14
- package/android/src/main/dysJniLibs/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibs/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor81/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor82/release/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +3 -0
- package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +3 -0
- package/android/src/main/java/com/dynamsoft/reactnativelib/CVRModule.kt +137 -137
- package/android/src/main/java/com/dynamsoft/reactnativelib/CameraViewManager.kt +62 -62
- package/android/src/main/java/com/dynamsoft/reactnativelib/DCEModule.kt +125 -125
- package/android/src/main/java/com/dynamsoft/reactnativelib/DynamsoftBaseModule.kt +8 -8
- package/android/src/main/java/com/dynamsoft/reactnativelib/ISAModule.kt +73 -73
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewManager.kt +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageEditorViewModule.kt +35 -35
- package/android/src/main/java/com/dynamsoft/reactnativelib/ImageManagerModule.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/LicenseModule.kt +29 -29
- package/android/src/main/java/com/dynamsoft/reactnativelib/MultiCrossFilterModule.kt +83 -83
- package/android/src/main/java/com/dynamsoft/reactnativelib/ReactNativeDcvPackage.kt +32 -32
- package/android/src/main/java/com/dynamsoft/reactnativelib/VersionsModule.kt +41 -41
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/Basic.kt +44 -44
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCore.kt +50 -50
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForCvr.kt +129 -129
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDBR.kt +157 -157
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCE.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDCP.kt +49 -49
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDDN.kt +85 -85
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ForDLR.kt +72 -72
- package/android/src/main/java/com/dynamsoft/reactnativelib/basicutils/ImageUtil.kt +58 -58
- package/android/src/main/java/com/dynamsoft/reactnativelib/core/ImageSourceAdapterModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/cvr/CaptureVisionRouterModuleImpl.kt +306 -306
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraEnhancerModuleImpl.kt +247 -247
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraLifeCycleOwner.java +14 -14
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/CameraViewManagerImpl.kt +77 -77
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewManagerImpl.kt +15 -15
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/ImageEditorViewModuleImpl.kt +110 -110
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNCameraView.kt +20 -20
- package/android/src/main/java/com/dynamsoft/reactnativelib/dce/RNImageEditorView.kt +19 -19
- package/android/src/main/java/com/dynamsoft/reactnativelib/license/LicenseModuleImpl.kt +39 -39
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/ImageManagerModuleImpl.kt +120 -120
- package/android/src/main/java/com/dynamsoft/reactnativelib/utility/MultiCrossFilterModuleImpl.kt +111 -111
- package/app.plugin.js +21 -21
- package/dynamsoft-capture-vision-react-native.podspec +24 -24
- package/ios/CPP/DSImageData+HostObject.h +18 -18
- package/ios/CPP/DSImageData+HostObject.mm +38 -38
- package/ios/CPP/ImageDataHostObject.cpp +87 -87
- package/ios/CPP/ImageDataHostObject.hpp +35 -35
- package/ios/CPP/MutableRawBuffer.cpp +23 -23
- package/ios/CPP/MutableRawBuffer.hpp +23 -23
- package/ios/CPP/RNDynamsoft+JSI.h +22 -22
- package/ios/CPP/RNDynamsoft+JSI.mm +303 -303
- package/ios/CPP/RNDynamsoft+Json.h +93 -93
- package/ios/CPP/RNDynamsoft+Json.m +733 -733
- package/ios/CPP/YeetJSIUtils.h +56 -56
- package/ios/CPP/YeetJSIUtils.mm +208 -208
- package/ios/RNDynamsoftCameraView.h +31 -31
- package/ios/RNDynamsoftCameraView.m +108 -108
- package/ios/RNDynamsoftCameraViewManager.h +14 -14
- package/ios/RNDynamsoftCameraViewManager.m +195 -195
- package/ios/RNDynamsoftCaptureVisionRouter.h +18 -18
- package/ios/RNDynamsoftCaptureVisionRouter.mm +532 -532
- package/ios/RNDynamsoftImageEditorView.h +17 -17
- package/ios/RNDynamsoftImageEditorView.m +25 -25
- package/ios/RNDynamsoftImageEditorViewManager.h +14 -14
- package/ios/RNDynamsoftImageEditorViewManager.mm +183 -183
- package/ios/RNDynamsoftImageManager.h +14 -14
- package/ios/RNDynamsoftImageManager.mm +369 -369
- package/ios/RNDynamsoftImageSourceAdapter.h +19 -19
- package/ios/RNDynamsoftImageSourceAdapter.mm +255 -255
- package/ios/RNDynamsoftLicense.h +14 -14
- package/ios/RNDynamsoftLicense.m +62 -62
- package/ios/RNDynamsoftMultiCrossFilter.h +14 -14
- package/ios/RNDynamsoftMultiCrossFilter.m +145 -145
- package/ios/RNDynamsoftVersions.h +13 -13
- package/ios/RNDynamsoftVersions.m +27 -27
- package/package.json +48 -48
- package/src/NativeDynamsoftVersionsModule.tsx +20 -20
- package/src/VersionsModule.tsx +7 -7
- package/src/core/CapturedResultBase.tsx +18 -18
- package/src/core/CapturedResultItem.tsx +23 -23
- package/src/core/CoreModule.tsx +9 -9
- package/src/core/DSRect.tsx +29 -29
- package/src/core/EnumCaptureResultItemType.tsx +52 -52
- package/src/core/EnumColourChannelUsageType.tsx +26 -26
- package/src/core/EnumCrossVerificationStatus.tsx +46 -46
- package/src/core/EnumGrayscaleEnhancementMode.tsx +46 -46
- package/src/core/EnumGrayscaleTransformationMode.tsx +35 -35
- package/src/core/EnumImageFileFormat.tsx +6 -6
- package/src/core/EnumPixelFormat.tsx +53 -53
- package/src/core/ImageData.tsx +87 -87
- package/src/core/ImageSourceAdapter.tsx +160 -160
- package/src/core/NativeDynamsoftImageSourceAdapterModule.tsx +29 -29
- package/src/core/Point.tsx +13 -13
- package/src/core/Quadrilateral.tsx +12 -12
- package/src/core/index.tsx +18 -18
- package/src/cvr/CaptureVisionRouter.tsx +683 -683
- package/src/cvr/CaptureVisionRouterModule.tsx +9 -9
- package/src/cvr/CapturedResult.tsx +123 -123
- package/src/cvr/CapturedResultFilter.tsx +13 -13
- package/src/cvr/CapturedResultReceiver.tsx +71 -71
- package/src/cvr/EnumPresetTemplate.tsx +81 -81
- package/src/cvr/NativeDynamsoftCaptureVisionRouterModule.tsx +25 -25
- package/src/cvr/SimplifiedCaptureVisionSettings.tsx +61 -61
- package/src/cvr/index.tsx +11 -11
- package/src/dbr/BarcodeDetails.tsx +51 -51
- package/src/dbr/BarcodeReaderModule.tsx +9 -9
- package/src/dbr/BarcodeResultItem.tsx +65 -65
- package/src/dbr/DecodedBarcodesResult.tsx +14 -14
- package/src/dbr/ECISegment.tsx +23 -23
- package/src/dbr/EnumBarcodeFormat.tsx +112 -112
- package/src/dbr/EnumDeblurMode.tsx +29 -29
- package/src/dbr/EnumLocalizationMode.tsx +27 -27
- package/src/dbr/EnumQRCodeErrorCorrectionLevel.tsx +6 -6
- package/src/dbr/SimplifiedBarcodeReaderSettings.tsx +80 -80
- package/src/dbr/index.tsx +9 -9
- package/src/dce/CameraEnhancer.tsx +254 -254
- package/src/dce/CameraEnhancerModule.tsx +9 -9
- package/src/dce/CameraView.tsx +100 -100
- package/src/dce/DynamsoftCameraViewNativeComponent.ts +96 -96
- package/src/dce/DynamsoftImageEditorViewNativeComponent.ts +9 -9
- package/src/dce/EnumCameraPosition.tsx +25 -25
- package/src/dce/EnumDrawingLayerId.tsx +17 -17
- package/src/dce/EnumEnhancedFeatures.tsx +24 -24
- package/src/dce/EnumFocusMode.tsx +6 -6
- package/src/dce/EnumResolution.tsx +8 -8
- package/src/dce/EnumTorchState.tsx +10 -10
- package/src/dce/FeedBack.tsx +28 -28
- package/src/dce/ImageEditorView.tsx +131 -131
- package/src/dce/NativeDynamsoftCameraViewModule.tsx +47 -47
- package/src/dce/NativeDynamsoftImageEditorViewModule.ts +9 -9
- package/src/dce/index.tsx +13 -13
- package/src/dcp/CodeParserDedicatorModule.tsx +9 -9
- package/src/dcp/CodeParserModule.tsx +9 -9
- package/src/dcp/EnumMappingStatus.tsx +14 -14
- package/src/dcp/EnumValidationStatus.tsx +14 -14
- package/src/dcp/ParsedResult.tsx +14 -14
- package/src/dcp/ParsedResultItem.tsx +50 -50
- package/src/dcp/index.tsx +8 -8
- package/src/ddn/DeskewedImageResultItem.tsx +40 -40
- package/src/ddn/DetectedQuadResultItem.tsx +31 -31
- package/src/ddn/DocumentNormalizerModule.tsx +9 -9
- package/src/ddn/EnhancedImageResultItem.tsx +20 -20
- package/src/ddn/EnumImageColourMode.tsx +14 -14
- package/src/ddn/ProcessedDocumentResult.tsx +27 -27
- package/src/ddn/SimplifiedDocumentNormalizerSettings.tsx +65 -65
- package/src/ddn/index.tsx +11 -11
- package/src/dip/ImageProcessingModule.tsx +9 -9
- package/src/dip/index.tsx +1 -1
- package/src/dlr/CharacterResult.tsx +28 -28
- package/src/dlr/LabelRecognizerModule.tsx +9 -9
- package/src/dlr/RecognizedTextLinesResult.tsx +19 -19
- package/src/dlr/SimplifiedLabelRecognizerSettings.tsx +33 -33
- package/src/dlr/TextLineResultItem.tsx +41 -41
- package/src/dlr/index.tsx +8 -8
- package/src/index.tsx +13 -13
- package/src/license/LicenseManager.tsx +49 -49
- package/src/license/LicenseModule.tsx +9 -9
- package/src/license/NativeDynamsoftLicenseModule.tsx +7 -7
- package/src/license/index.tsx +7 -7
- package/src/utility/CrossVerificationCriteria.tsx +11 -11
- package/src/utility/EnumFilterType.tsx +5 -5
- package/src/utility/ImageManager.tsx +348 -348
- package/src/utility/MultiFrameResultCrossFilter.tsx +183 -183
- package/src/utility/NativeDynamsoftImageManagerModule.tsx +7 -7
- package/src/utility/NativeDynamsoftMultiCrossFilterModule.tsx +18 -18
- package/src/utility/UtilityModule.tsx +9 -9
- package/src/utility/index.tsx +4 -4
- package/android/.gitignore +0 -4
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import android.graphics.Point
|
|
5
|
-
import android.graphics.Rect
|
|
6
|
-
import android.graphics.drawable.Drawable
|
|
7
|
-
import androidx.appcompat.content.res.AppCompatResources
|
|
8
|
-
import com.dynamsoft.core.basic_structures.DSRect
|
|
9
|
-
import com.dynamsoft.dce.CameraView
|
|
10
|
-
import com.facebook.react.bridge.Arguments
|
|
11
|
-
import com.facebook.react.bridge.ReadableMap
|
|
12
|
-
import com.facebook.react.bridge.ReadableType
|
|
13
|
-
import com.facebook.react.bridge.WritableMap
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
fun ReadableMap.toRect() = Rect().apply {
|
|
17
|
-
left = if (hasKey("x")) getInt("x") else left
|
|
18
|
-
top = if (hasKey("y")) getInt("y") else top
|
|
19
|
-
right = (if (hasKey("width")) getInt("width") else 0) + left
|
|
20
|
-
bottom = (if (hasKey("height")) getInt("height") else 0) + top
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
fun ReadableMap.toScanRegion() = DSRect().apply {
|
|
24
|
-
top = if (hasKey("top")) getDouble("top").toFloat() else top
|
|
25
|
-
bottom = if (hasKey("bottom")) getDouble("bottom").toFloat() else bottom
|
|
26
|
-
left = if (hasKey("left")) getDouble("left").toFloat() else left
|
|
27
|
-
right = if (hasKey("right")) getDouble("right").toFloat() else right
|
|
28
|
-
if (hasKey("measuredInPercentage")) {
|
|
29
|
-
when (getType("measuredInPercentage")) {
|
|
30
|
-
ReadableType.Number -> measuredInPercentage = getInt("measuredInPercentage") != 0
|
|
31
|
-
ReadableType.Boolean -> measuredInPercentage = getBoolean("measuredInPercentage")
|
|
32
|
-
else -> {/*keep*/
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
fun DSRect.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
39
|
-
putDouble("top", this@toWritableMap.top.toDouble())
|
|
40
|
-
putDouble("bottom", this@toWritableMap.bottom.toDouble())
|
|
41
|
-
putDouble("left", this@toWritableMap.left.toDouble())
|
|
42
|
-
putDouble("right", this@toWritableMap.right.toDouble())
|
|
43
|
-
putBoolean("measuredInPercentage", this@toWritableMap.measuredInPercentage)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
fun ReadableMap.toTorchButtonState(): CameraViewButtonState {
|
|
47
|
-
val rect = if (hasKey("location")) getMap("location")!!.toRect() else Rect(25,100,70,145)
|
|
48
|
-
val visible = if (hasKey("visible")) getBoolean("visible") else null
|
|
49
|
-
val torchOnImageBase64 = if (hasKey("torchOnImageBase64")) getString("torchOnImageBase64") else null
|
|
50
|
-
val torchOffImageBase64 = if (hasKey("torchOffImageBase64")) getString("torchOffImageBase64") else null
|
|
51
|
-
return CameraViewButtonState(rect, visible, torchOnImageBase64, torchOffImageBase64)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
fun ReadableMap.toCameraToggleButtonState(): CameraViewButtonState {
|
|
55
|
-
val rect = if (hasKey("location")) getMap("location")!!.toRect() else Rect(25,100,70,145)
|
|
56
|
-
val visible = if (hasKey("visible")) getBoolean("visible") else false
|
|
57
|
-
val cameraImageBase64 = if (hasKey("cameraToggleImageBase64")) getString("cameraToggleImageBase64") else null
|
|
58
|
-
return CameraViewButtonState(rect, visible, cameraBase64 = cameraImageBase64)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
fun CameraView.setTorchButtonState(torchButtonState: CameraViewButtonState) {
|
|
62
|
-
setTorchButton(
|
|
63
|
-
torchButtonState.getLeftTopPoint(), torchButtonState.getWidth(), torchButtonState.getHeight(),
|
|
64
|
-
torchButtonState.getTouchOnDrawable(context), torchButtonState.getTouchOffDrawable(context)
|
|
65
|
-
)
|
|
66
|
-
torchButtonState.visible?.apply {
|
|
67
|
-
torchButtonVisible = this
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
fun CameraView.setCameraToggleButtonState(cameraToggleButtonState: CameraViewButtonState) {
|
|
72
|
-
setCameraToggleButton(
|
|
73
|
-
cameraToggleButtonState.getLeftTopPoint(), cameraToggleButtonState.getWidth(), cameraToggleButtonState.getHeight(),
|
|
74
|
-
cameraToggleButtonState.getCameraToggleDrawable(context)
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
class CameraViewButtonState(
|
|
79
|
-
val location: Rect,
|
|
80
|
-
val visible: Boolean? = null,
|
|
81
|
-
val touchOnBase64: String? = null,
|
|
82
|
-
val touchOffBase64: String? = null,
|
|
83
|
-
val cameraBase64: String? = null,
|
|
84
|
-
) {
|
|
85
|
-
fun getLeftTopPoint() = Point(location.left, location.top)
|
|
86
|
-
fun getWidth() = location.width()
|
|
87
|
-
fun getHeight() = location.height()
|
|
88
|
-
|
|
89
|
-
fun getTouchOnDrawable(context: Context): Drawable {
|
|
90
|
-
return base64ToDrawable(touchOnBase64, context.resources!!) ?: AppCompatResources.getDrawable(
|
|
91
|
-
context,
|
|
92
|
-
com.dynamsoft.R.drawable.icon_flash_on
|
|
93
|
-
)!!
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
fun getTouchOffDrawable(context: Context): Drawable {
|
|
97
|
-
return base64ToDrawable(touchOffBase64, context.resources!!) ?: AppCompatResources.getDrawable(
|
|
98
|
-
context,
|
|
99
|
-
com.dynamsoft.R.drawable.icon_flash_off
|
|
100
|
-
)!!
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
fun getCameraToggleDrawable(context: Context): Drawable {
|
|
104
|
-
return base64ToDrawable(cameraBase64, context.resources!!) ?: AppCompatResources.getDrawable(context, com.dynamsoft.R.drawable.icon_turn_camera)!!
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
override fun toString(): String {
|
|
108
|
-
return "CameraViewButtonState(location=$location, visible=$visible, touchOnBase64=$touchOnBase64, touchOffBase64=$touchOffBase64)"
|
|
109
|
-
}
|
|
110
|
-
}
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.graphics.Point
|
|
5
|
+
import android.graphics.Rect
|
|
6
|
+
import android.graphics.drawable.Drawable
|
|
7
|
+
import androidx.appcompat.content.res.AppCompatResources
|
|
8
|
+
import com.dynamsoft.core.basic_structures.DSRect
|
|
9
|
+
import com.dynamsoft.dce.CameraView
|
|
10
|
+
import com.facebook.react.bridge.Arguments
|
|
11
|
+
import com.facebook.react.bridge.ReadableMap
|
|
12
|
+
import com.facebook.react.bridge.ReadableType
|
|
13
|
+
import com.facebook.react.bridge.WritableMap
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
fun ReadableMap.toRect() = Rect().apply {
|
|
17
|
+
left = if (hasKey("x")) getInt("x") else left
|
|
18
|
+
top = if (hasKey("y")) getInt("y") else top
|
|
19
|
+
right = (if (hasKey("width")) getInt("width") else 0) + left
|
|
20
|
+
bottom = (if (hasKey("height")) getInt("height") else 0) + top
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
fun ReadableMap.toScanRegion() = DSRect().apply {
|
|
24
|
+
top = if (hasKey("top")) getDouble("top").toFloat() else top
|
|
25
|
+
bottom = if (hasKey("bottom")) getDouble("bottom").toFloat() else bottom
|
|
26
|
+
left = if (hasKey("left")) getDouble("left").toFloat() else left
|
|
27
|
+
right = if (hasKey("right")) getDouble("right").toFloat() else right
|
|
28
|
+
if (hasKey("measuredInPercentage")) {
|
|
29
|
+
when (getType("measuredInPercentage")) {
|
|
30
|
+
ReadableType.Number -> measuredInPercentage = getInt("measuredInPercentage") != 0
|
|
31
|
+
ReadableType.Boolean -> measuredInPercentage = getBoolean("measuredInPercentage")
|
|
32
|
+
else -> {/*keep*/
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
fun DSRect.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
39
|
+
putDouble("top", this@toWritableMap.top.toDouble())
|
|
40
|
+
putDouble("bottom", this@toWritableMap.bottom.toDouble())
|
|
41
|
+
putDouble("left", this@toWritableMap.left.toDouble())
|
|
42
|
+
putDouble("right", this@toWritableMap.right.toDouble())
|
|
43
|
+
putBoolean("measuredInPercentage", this@toWritableMap.measuredInPercentage)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
fun ReadableMap.toTorchButtonState(): CameraViewButtonState {
|
|
47
|
+
val rect = if (hasKey("location")) getMap("location")!!.toRect() else Rect(25,100,70,145)
|
|
48
|
+
val visible = if (hasKey("visible")) getBoolean("visible") else null
|
|
49
|
+
val torchOnImageBase64 = if (hasKey("torchOnImageBase64")) getString("torchOnImageBase64") else null
|
|
50
|
+
val torchOffImageBase64 = if (hasKey("torchOffImageBase64")) getString("torchOffImageBase64") else null
|
|
51
|
+
return CameraViewButtonState(rect, visible, torchOnImageBase64, torchOffImageBase64)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
fun ReadableMap.toCameraToggleButtonState(): CameraViewButtonState {
|
|
55
|
+
val rect = if (hasKey("location")) getMap("location")!!.toRect() else Rect(25,100,70,145)
|
|
56
|
+
val visible = if (hasKey("visible")) getBoolean("visible") else false
|
|
57
|
+
val cameraImageBase64 = if (hasKey("cameraToggleImageBase64")) getString("cameraToggleImageBase64") else null
|
|
58
|
+
return CameraViewButtonState(rect, visible, cameraBase64 = cameraImageBase64)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
fun CameraView.setTorchButtonState(torchButtonState: CameraViewButtonState) {
|
|
62
|
+
setTorchButton(
|
|
63
|
+
torchButtonState.getLeftTopPoint(), torchButtonState.getWidth(), torchButtonState.getHeight(),
|
|
64
|
+
torchButtonState.getTouchOnDrawable(context), torchButtonState.getTouchOffDrawable(context)
|
|
65
|
+
)
|
|
66
|
+
torchButtonState.visible?.apply {
|
|
67
|
+
torchButtonVisible = this
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
fun CameraView.setCameraToggleButtonState(cameraToggleButtonState: CameraViewButtonState) {
|
|
72
|
+
setCameraToggleButton(
|
|
73
|
+
cameraToggleButtonState.getLeftTopPoint(), cameraToggleButtonState.getWidth(), cameraToggleButtonState.getHeight(),
|
|
74
|
+
cameraToggleButtonState.getCameraToggleDrawable(context)
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
class CameraViewButtonState(
|
|
79
|
+
val location: Rect,
|
|
80
|
+
val visible: Boolean? = null,
|
|
81
|
+
val touchOnBase64: String? = null,
|
|
82
|
+
val touchOffBase64: String? = null,
|
|
83
|
+
val cameraBase64: String? = null,
|
|
84
|
+
) {
|
|
85
|
+
fun getLeftTopPoint() = Point(location.left, location.top)
|
|
86
|
+
fun getWidth() = location.width()
|
|
87
|
+
fun getHeight() = location.height()
|
|
88
|
+
|
|
89
|
+
fun getTouchOnDrawable(context: Context): Drawable {
|
|
90
|
+
return base64ToDrawable(touchOnBase64, context.resources!!) ?: AppCompatResources.getDrawable(
|
|
91
|
+
context,
|
|
92
|
+
com.dynamsoft.R.drawable.icon_flash_on
|
|
93
|
+
)!!
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
fun getTouchOffDrawable(context: Context): Drawable {
|
|
97
|
+
return base64ToDrawable(touchOffBase64, context.resources!!) ?: AppCompatResources.getDrawable(
|
|
98
|
+
context,
|
|
99
|
+
com.dynamsoft.R.drawable.icon_flash_off
|
|
100
|
+
)!!
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
fun getCameraToggleDrawable(context: Context): Drawable {
|
|
104
|
+
return base64ToDrawable(cameraBase64, context.resources!!) ?: AppCompatResources.getDrawable(context, com.dynamsoft.R.drawable.icon_turn_camera)!!
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
override fun toString(): String {
|
|
108
|
+
return "CameraViewButtonState(location=$location, visible=$visible, touchOnBase64=$touchOnBase64, touchOffBase64=$touchOffBase64)"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
-
import com.dynamsoft.dcp.ParsedResult
|
|
5
|
-
import com.dynamsoft.dcp.ParsedResultItem
|
|
6
|
-
import com.facebook.react.bridge.Arguments
|
|
7
|
-
import com.facebook.react.bridge.WritableArray
|
|
8
|
-
import com.facebook.react.bridge.WritableMap
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/*
|
|
12
|
-
*
|
|
13
|
-
* export interface itemField {
|
|
14
|
-
* value?: string,
|
|
15
|
-
* mappingStatus?: EnumMappingStatus | number,
|
|
16
|
-
* validationStatus?: EnumValidationStatus | number
|
|
17
|
-
* }
|
|
18
|
-
*
|
|
19
|
-
* export interface ParsedResultItem {
|
|
20
|
-
* codeType: string
|
|
21
|
-
* jsonString: string
|
|
22
|
-
* parsedFields?: Map<String, itemField>
|
|
23
|
-
* }
|
|
24
|
-
* */
|
|
25
|
-
fun ParsedResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
26
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
27
|
-
putString("codeType", codeType)
|
|
28
|
-
putString("jsonString", jsonString)
|
|
29
|
-
val fieldsMap = Arguments.createMap()
|
|
30
|
-
parsedFields.entries.forEach {
|
|
31
|
-
val fieldMap = Arguments.createMap().apply {
|
|
32
|
-
putString("value", it.value)
|
|
33
|
-
putInt("mappingStatus", getFieldMappingStatus(it.key))
|
|
34
|
-
putInt("validationStatus", getFieldValidationStatus(it.key))
|
|
35
|
-
}
|
|
36
|
-
fieldsMap.putMap(it.key, fieldMap)
|
|
37
|
-
}
|
|
38
|
-
putMap("parsedFields", fieldsMap)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
fun Array<out ParsedResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
42
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
fun ParsedResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
46
|
-
putInt("errorCode", errorCode)
|
|
47
|
-
putString("originalImageHashId", originalImageHashId)
|
|
48
|
-
putString("errorMessage", errorMessage)
|
|
49
|
-
putArray("items", items.toWritableArray())
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
+
import com.dynamsoft.dcp.ParsedResult
|
|
5
|
+
import com.dynamsoft.dcp.ParsedResultItem
|
|
6
|
+
import com.facebook.react.bridge.Arguments
|
|
7
|
+
import com.facebook.react.bridge.WritableArray
|
|
8
|
+
import com.facebook.react.bridge.WritableMap
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/*
|
|
12
|
+
*
|
|
13
|
+
* export interface itemField {
|
|
14
|
+
* value?: string,
|
|
15
|
+
* mappingStatus?: EnumMappingStatus | number,
|
|
16
|
+
* validationStatus?: EnumValidationStatus | number
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* export interface ParsedResultItem {
|
|
20
|
+
* codeType: string
|
|
21
|
+
* jsonString: string
|
|
22
|
+
* parsedFields?: Map<String, itemField>
|
|
23
|
+
* }
|
|
24
|
+
* */
|
|
25
|
+
fun ParsedResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
26
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
27
|
+
putString("codeType", codeType)
|
|
28
|
+
putString("jsonString", jsonString)
|
|
29
|
+
val fieldsMap = Arguments.createMap()
|
|
30
|
+
parsedFields.entries.forEach {
|
|
31
|
+
val fieldMap = Arguments.createMap().apply {
|
|
32
|
+
putString("value", it.value)
|
|
33
|
+
putInt("mappingStatus", getFieldMappingStatus(it.key))
|
|
34
|
+
putInt("validationStatus", getFieldValidationStatus(it.key))
|
|
35
|
+
}
|
|
36
|
+
fieldsMap.putMap(it.key, fieldMap)
|
|
37
|
+
}
|
|
38
|
+
putMap("parsedFields", fieldsMap)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fun Array<out ParsedResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
42
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
fun ParsedResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
46
|
+
putInt("errorCode", errorCode)
|
|
47
|
+
putString("originalImageHashId", originalImageHashId)
|
|
48
|
+
putString("errorMessage", errorMessage)
|
|
49
|
+
putArray("items", items.toWritableArray())
|
|
50
50
|
}
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
-
import com.dynamsoft.ddn.DeskewedImageResultItem
|
|
5
|
-
import com.dynamsoft.ddn.DetectedQuadResultItem
|
|
6
|
-
import com.dynamsoft.ddn.EnhancedImageResultItem
|
|
7
|
-
import com.dynamsoft.ddn.ProcessedDocumentResult
|
|
8
|
-
import com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings
|
|
9
|
-
import com.facebook.react.bridge.Arguments
|
|
10
|
-
import com.facebook.react.bridge.ReadableMap
|
|
11
|
-
import com.facebook.react.bridge.WritableArray
|
|
12
|
-
import com.facebook.react.bridge.WritableMap
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
fun ProcessedDocumentResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
16
|
-
merge(this@toWritableMap.toSharedWritableMap())
|
|
17
|
-
putArray("deskewedImageResultItems", deskewedImageResultItems.toWritableArray())
|
|
18
|
-
putArray("detectedQuadResultItems", detectedQuadResultItems.toWritableArray())
|
|
19
|
-
putArray("enhancedImageResultItems", enhancedImageResultItems.toWritableArray())
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
fun DetectedQuadResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
23
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
24
|
-
putMap("location", location.toWritableMap())
|
|
25
|
-
putInt("confidenceAsDocumentBoundary", confidenceAsDocumentBoundary)
|
|
26
|
-
putInt("crossVerificationStatus", crossVerificationStatus)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
fun Array<out DetectedQuadResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
31
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
fun DeskewedImageResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
36
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
37
|
-
putMap("sourceDeskewQuad", sourceDeskewQuad.toWritableMap())
|
|
38
|
-
putInt("crossVerificationStatus", crossVerificationStatus)
|
|
39
|
-
putArray("originalToLocalMatrix", FloatArray(9).apply { originalToLocalMatrix.getValues(this) }.toWritableArray())
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
fun Array<out DeskewedImageResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
43
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
fun EnhancedImageResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
47
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
48
|
-
putArray("originalToLocalMatrix", FloatArray(9).apply { originalToLocalMatrix.getValues(this) }.toWritableArray())
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
fun Array<out EnhancedImageResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
52
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
fun SimplifiedDocumentNormalizerSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
58
|
-
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
59
|
-
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
60
|
-
putArray("pageSize", pageSize.toWritableArray())
|
|
61
|
-
putInt("colourMode", colourMode)
|
|
62
|
-
putInt("brightness", brightness)
|
|
63
|
-
putInt("contrast", contrast)
|
|
64
|
-
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
65
|
-
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
66
|
-
putInt("minQuadrilateralAreaRatio", minQuadrilateralAreaRatio)
|
|
67
|
-
putInt("expectedDocumentsCount", expectedDocumentsCount)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
fun SimplifiedDocumentNormalizerSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
71
|
-
colourMode = if (newSettings.hasKey("colourMode")) newSettings.getInt("colourMode") else colourMode
|
|
72
|
-
brightness = if (newSettings.hasKey("brightness")) newSettings.getInt("brightness") else brightness
|
|
73
|
-
contrast = if (newSettings.hasKey("contrast")) newSettings.getInt("contrast") else contrast
|
|
74
|
-
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
75
|
-
scaleDownThreshold = if (newSettings.hasKey("scaleDownThreshold")) newSettings.getInt("scaleDownThreshold") else scaleDownThreshold
|
|
76
|
-
pageSize = if (newSettings.hasKey("pageSize")) newSettings.getArray("pageSize")?.toIntArray() else pageSize
|
|
77
|
-
|
|
78
|
-
grayscaleTransformationModes = if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
79
|
-
newSettings.getArray("grayscaleTransformationModes")?.toIntArray() else grayscaleTransformationModes
|
|
80
|
-
|
|
81
|
-
grayscaleEnhancementModes = if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
82
|
-
newSettings.getArray("grayscaleEnhancementModes")?.toIntArray() else grayscaleEnhancementModes
|
|
83
|
-
|
|
84
|
-
minQuadrilateralAreaRatio = if (newSettings.hasKey("minQuadrilateralAreaRatio")) newSettings.getInt("minQuadrilateralAreaRatio") else minQuadrilateralAreaRatio
|
|
85
|
-
expectedDocumentsCount = if (newSettings.hasKey("expectedDocumentsCount")) newSettings.getInt("expectedDocumentsCount") else expectedDocumentsCount
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
+
import com.dynamsoft.ddn.DeskewedImageResultItem
|
|
5
|
+
import com.dynamsoft.ddn.DetectedQuadResultItem
|
|
6
|
+
import com.dynamsoft.ddn.EnhancedImageResultItem
|
|
7
|
+
import com.dynamsoft.ddn.ProcessedDocumentResult
|
|
8
|
+
import com.dynamsoft.ddn.SimplifiedDocumentNormalizerSettings
|
|
9
|
+
import com.facebook.react.bridge.Arguments
|
|
10
|
+
import com.facebook.react.bridge.ReadableMap
|
|
11
|
+
import com.facebook.react.bridge.WritableArray
|
|
12
|
+
import com.facebook.react.bridge.WritableMap
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
fun ProcessedDocumentResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
16
|
+
merge(this@toWritableMap.toSharedWritableMap())
|
|
17
|
+
putArray("deskewedImageResultItems", deskewedImageResultItems.toWritableArray())
|
|
18
|
+
putArray("detectedQuadResultItems", detectedQuadResultItems.toWritableArray())
|
|
19
|
+
putArray("enhancedImageResultItems", enhancedImageResultItems.toWritableArray())
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
fun DetectedQuadResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
23
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
24
|
+
putMap("location", location.toWritableMap())
|
|
25
|
+
putInt("confidenceAsDocumentBoundary", confidenceAsDocumentBoundary)
|
|
26
|
+
putInt("crossVerificationStatus", crossVerificationStatus)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
fun Array<out DetectedQuadResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
31
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
fun DeskewedImageResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
36
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
37
|
+
putMap("sourceDeskewQuad", sourceDeskewQuad.toWritableMap())
|
|
38
|
+
putInt("crossVerificationStatus", crossVerificationStatus)
|
|
39
|
+
putArray("originalToLocalMatrix", FloatArray(9).apply { originalToLocalMatrix.getValues(this) }.toWritableArray())
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
fun Array<out DeskewedImageResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
43
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
fun EnhancedImageResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
47
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
48
|
+
putArray("originalToLocalMatrix", FloatArray(9).apply { originalToLocalMatrix.getValues(this) }.toWritableArray())
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
fun Array<out EnhancedImageResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
52
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
fun SimplifiedDocumentNormalizerSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
58
|
+
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
59
|
+
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
60
|
+
putArray("pageSize", pageSize.toWritableArray())
|
|
61
|
+
putInt("colourMode", colourMode)
|
|
62
|
+
putInt("brightness", brightness)
|
|
63
|
+
putInt("contrast", contrast)
|
|
64
|
+
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
65
|
+
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
66
|
+
putInt("minQuadrilateralAreaRatio", minQuadrilateralAreaRatio)
|
|
67
|
+
putInt("expectedDocumentsCount", expectedDocumentsCount)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
fun SimplifiedDocumentNormalizerSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
71
|
+
colourMode = if (newSettings.hasKey("colourMode")) newSettings.getInt("colourMode") else colourMode
|
|
72
|
+
brightness = if (newSettings.hasKey("brightness")) newSettings.getInt("brightness") else brightness
|
|
73
|
+
contrast = if (newSettings.hasKey("contrast")) newSettings.getInt("contrast") else contrast
|
|
74
|
+
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
75
|
+
scaleDownThreshold = if (newSettings.hasKey("scaleDownThreshold")) newSettings.getInt("scaleDownThreshold") else scaleDownThreshold
|
|
76
|
+
pageSize = if (newSettings.hasKey("pageSize")) newSettings.getArray("pageSize")?.toIntArray() else pageSize
|
|
77
|
+
|
|
78
|
+
grayscaleTransformationModes = if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
79
|
+
newSettings.getArray("grayscaleTransformationModes")?.toIntArray() else grayscaleTransformationModes
|
|
80
|
+
|
|
81
|
+
grayscaleEnhancementModes = if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
82
|
+
newSettings.getArray("grayscaleEnhancementModes")?.toIntArray() else grayscaleEnhancementModes
|
|
83
|
+
|
|
84
|
+
minQuadrilateralAreaRatio = if (newSettings.hasKey("minQuadrilateralAreaRatio")) newSettings.getInt("minQuadrilateralAreaRatio") else minQuadrilateralAreaRatio
|
|
85
|
+
expectedDocumentsCount = if (newSettings.hasKey("expectedDocumentsCount")) newSettings.getInt("expectedDocumentsCount") else expectedDocumentsCount
|
|
86
86
|
}
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
-
|
|
3
|
-
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
-
import com.dynamsoft.dlr.CharacterResult
|
|
5
|
-
import com.dynamsoft.dlr.RecognizedTextLinesResult
|
|
6
|
-
import com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings
|
|
7
|
-
import com.dynamsoft.dlr.TextLineResultItem
|
|
8
|
-
import com.facebook.react.bridge.Arguments
|
|
9
|
-
import com.facebook.react.bridge.ReadableMap
|
|
10
|
-
import com.facebook.react.bridge.WritableArray
|
|
11
|
-
import com.facebook.react.bridge.WritableMap
|
|
12
|
-
|
|
13
|
-
fun Array<CharacterResult>.toWitableArray() :WritableArray = Arguments.createArray().apply {
|
|
14
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
fun CharacterResult.toWritableMap() : WritableMap = Arguments.createMap().apply {
|
|
18
|
-
putString("characterH",characterH.toString())
|
|
19
|
-
putString("characterM",characterM.toString())
|
|
20
|
-
putString("characterL",characterL.toString())
|
|
21
|
-
putInt("characterHConfidence",characterHConfidence)
|
|
22
|
-
putInt("characterMConfidence",characterMConfidence)
|
|
23
|
-
putInt("characterLConfidence",characterLConfidence)
|
|
24
|
-
putMap("location", location.toWritableMap())
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
fun TextLineResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
28
|
-
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
29
|
-
putMap("location", location.toWritableMap())
|
|
30
|
-
putArray("characterResults", characterResults.toWitableArray())
|
|
31
|
-
putString("text", text)
|
|
32
|
-
putString("rawText", rawText)
|
|
33
|
-
putString("specificationName", specificationName)
|
|
34
|
-
putInt("confidence", confidence)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
fun Array<out TextLineResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
38
|
-
forEach { pushMap(it.toWritableMap()) }
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
fun RecognizedTextLinesResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
42
|
-
putInt("errorCode", errorCode)
|
|
43
|
-
putString("originalImageHashId", originalImageHashId)
|
|
44
|
-
putString("errorMessage", errorMessage)
|
|
45
|
-
putArray("items", items.toWritableArray())
|
|
46
|
-
putArray("rotationTransformMatrix",FloatArray(9).apply { rotationTransformMatrix.getValues(this) }.toWritableArray())
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
fun SimplifiedLabelRecognizerSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
50
|
-
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
51
|
-
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
52
|
-
putString("characterModelName", characterModelName)
|
|
53
|
-
putString("lineStringRegExPattern", lineStringRegExPattern)
|
|
54
|
-
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
55
|
-
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
fun SimplifiedLabelRecognizerSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
59
|
-
characterModelName = if (newSettings.hasKey("characterModelName")) newSettings.getString("characterModelName") else characterModelName
|
|
60
|
-
lineStringRegExPattern =
|
|
61
|
-
if (newSettings.hasKey("lineStringRegExPattern")) newSettings.getString("lineStringRegExPattern") else lineStringRegExPattern
|
|
62
|
-
|
|
63
|
-
scaleDownThreshold = if (newSettings.hasKey("scaleDownThreshold")) newSettings.getInt("scaleDownThreshold") else scaleDownThreshold
|
|
64
|
-
|
|
65
|
-
grayscaleTransformationModes = if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
66
|
-
newSettings.getArray("grayscaleTransformationModes")?.toIntArray() else grayscaleTransformationModes
|
|
67
|
-
|
|
68
|
-
grayscaleEnhancementModes = if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
69
|
-
newSettings.getArray("grayscaleEnhancementModes")?.toIntArray() else grayscaleEnhancementModes
|
|
70
|
-
|
|
71
|
-
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
72
|
-
}
|
|
1
|
+
package com.dynamsoft.reactnativelib.basicutils
|
|
2
|
+
|
|
3
|
+
import com.dynamsoft.core.basic_structures.CapturedResultItem
|
|
4
|
+
import com.dynamsoft.dlr.CharacterResult
|
|
5
|
+
import com.dynamsoft.dlr.RecognizedTextLinesResult
|
|
6
|
+
import com.dynamsoft.dlr.SimplifiedLabelRecognizerSettings
|
|
7
|
+
import com.dynamsoft.dlr.TextLineResultItem
|
|
8
|
+
import com.facebook.react.bridge.Arguments
|
|
9
|
+
import com.facebook.react.bridge.ReadableMap
|
|
10
|
+
import com.facebook.react.bridge.WritableArray
|
|
11
|
+
import com.facebook.react.bridge.WritableMap
|
|
12
|
+
|
|
13
|
+
fun Array<CharacterResult>.toWitableArray() :WritableArray = Arguments.createArray().apply {
|
|
14
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
fun CharacterResult.toWritableMap() : WritableMap = Arguments.createMap().apply {
|
|
18
|
+
putString("characterH",characterH.toString())
|
|
19
|
+
putString("characterM",characterM.toString())
|
|
20
|
+
putString("characterL",characterL.toString())
|
|
21
|
+
putInt("characterHConfidence",characterHConfidence)
|
|
22
|
+
putInt("characterMConfidence",characterMConfidence)
|
|
23
|
+
putInt("characterLConfidence",characterLConfidence)
|
|
24
|
+
putMap("location", location.toWritableMap())
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
fun TextLineResultItem.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
28
|
+
merge((this@toWritableMap as CapturedResultItem).toSharedWritableMap())
|
|
29
|
+
putMap("location", location.toWritableMap())
|
|
30
|
+
putArray("characterResults", characterResults.toWitableArray())
|
|
31
|
+
putString("text", text)
|
|
32
|
+
putString("rawText", rawText)
|
|
33
|
+
putString("specificationName", specificationName)
|
|
34
|
+
putInt("confidence", confidence)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
fun Array<out TextLineResultItem>.toWritableArray(): WritableArray = Arguments.createArray().apply {
|
|
38
|
+
forEach { pushMap(it.toWritableMap()) }
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
fun RecognizedTextLinesResult.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
42
|
+
putInt("errorCode", errorCode)
|
|
43
|
+
putString("originalImageHashId", originalImageHashId)
|
|
44
|
+
putString("errorMessage", errorMessage)
|
|
45
|
+
putArray("items", items.toWritableArray())
|
|
46
|
+
putArray("rotationTransformMatrix",FloatArray(9).apply { rotationTransformMatrix.getValues(this) }.toWritableArray())
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
fun SimplifiedLabelRecognizerSettings.toWritableMap(): WritableMap = Arguments.createMap().apply {
|
|
50
|
+
putArray("grayscaleTransformationModes", grayscaleTransformationModes.toWritableArray())
|
|
51
|
+
putArray("grayscaleEnhancementModes", grayscaleEnhancementModes.toWritableArray())
|
|
52
|
+
putString("characterModelName", characterModelName)
|
|
53
|
+
putString("lineStringRegExPattern", lineStringRegExPattern)
|
|
54
|
+
putInt("scaleDownThreshold", scaleDownThreshold)
|
|
55
|
+
putInt("maxThreadsInOneTask", maxThreadsInOneTask)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
fun SimplifiedLabelRecognizerSettings.updateFromReadableMap(newSettings: ReadableMap) {
|
|
59
|
+
characterModelName = if (newSettings.hasKey("characterModelName")) newSettings.getString("characterModelName") else characterModelName
|
|
60
|
+
lineStringRegExPattern =
|
|
61
|
+
if (newSettings.hasKey("lineStringRegExPattern")) newSettings.getString("lineStringRegExPattern") else lineStringRegExPattern
|
|
62
|
+
|
|
63
|
+
scaleDownThreshold = if (newSettings.hasKey("scaleDownThreshold")) newSettings.getInt("scaleDownThreshold") else scaleDownThreshold
|
|
64
|
+
|
|
65
|
+
grayscaleTransformationModes = if (newSettings.hasKey("grayscaleTransformationModes"))
|
|
66
|
+
newSettings.getArray("grayscaleTransformationModes")?.toIntArray() else grayscaleTransformationModes
|
|
67
|
+
|
|
68
|
+
grayscaleEnhancementModes = if (newSettings.hasKey("grayscaleEnhancementModes"))
|
|
69
|
+
newSettings.getArray("grayscaleEnhancementModes")?.toIntArray() else grayscaleEnhancementModes
|
|
70
|
+
|
|
71
|
+
maxThreadsInOneTask = if (newSettings.hasKey("maxThreadsInOneTask")) newSettings.getInt("maxThreadsInOneTask") else maxThreadsInOneTask
|
|
72
|
+
}
|