dynamsoft-capture-vision-react-native 3.4.1300 → 3.4.3010
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 +4 -4
- package/README.md +62 -62
- 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/dysJniLibsFor86/debug/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/debug/x86_64/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/release/arm64-v8a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/release/armeabi-v7a/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/release/x86/librn_dys.so +0 -0
- package/android/src/main/dysJniLibsFor86/release/x86_64/librn_dys.so +0 -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,26 +1,26 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/28.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
6
|
-
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
7
|
-
|
|
8
|
-
#include "jni.h"
|
|
9
|
-
#include "jsi/jsi.h"
|
|
10
|
-
#include "JsiCore.h"
|
|
11
|
-
|
|
12
|
-
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
-
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
-
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
-
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
-
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
-
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
-
|
|
19
|
-
using namespace std;
|
|
20
|
-
using namespace facebook::jsi;
|
|
21
|
-
|
|
22
|
-
namespace jsiConversion::dbr {
|
|
23
|
-
void jBarcodeResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
7
|
+
|
|
8
|
+
#include "jni.h"
|
|
9
|
+
#include "jsi/jsi.h"
|
|
10
|
+
#include "JsiCore.h"
|
|
11
|
+
|
|
12
|
+
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
+
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
+
|
|
19
|
+
using namespace std;
|
|
20
|
+
using namespace facebook::jsi;
|
|
21
|
+
|
|
22
|
+
namespace jsiConversion::dbr {
|
|
23
|
+
void jBarcodeResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DBR_JSIDBR_H_
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/29.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include "JsiDce.h"
|
|
6
|
-
#define JSI_FUNC [](Runtime &runtime, const Value &thisValue, const Value *arguments, size_t count) -> Value
|
|
7
|
-
|
|
8
|
-
jobject jImageEditorViewModule = nullptr;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
void install_editorView_methods(Runtime &jsiRuntime) {
|
|
12
|
-
jsi_install::dce::install_editorView_setOriginalImage(jsiRuntime);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
extern "C"
|
|
16
|
-
JNIEXPORT void JNICALL
|
|
17
|
-
Java_com_dynamsoft_reactnativelib_dce_ImageEditorViewModuleImpl_nativeInstall(JNIEnv *env, jobject thiz, jlong jsiPtr) {
|
|
18
|
-
if (!env->IsSameObject(jImageEditorViewModule, thiz)) {
|
|
19
|
-
jImageEditorViewModule = env->NewWeakGlobalRef(thiz);
|
|
20
|
-
}
|
|
21
|
-
auto rt = reinterpret_cast<Runtime *>(jsiPtr);
|
|
22
|
-
install_editorView_methods(*rt);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
namespace jsi_install::dce {
|
|
27
|
-
void install_editorView_setOriginalImage(Runtime &jsiRuntime) {
|
|
28
|
-
auto nameID = PropNameID::forAscii(jsiRuntime, "editorView_setOriginalImage");
|
|
29
|
-
if(!jsiRuntime.global().hasProperty(jsiRuntime, nameID)) {
|
|
30
|
-
auto setOriginalImageFcn = Function::createFromHostFunction(jsiRuntime, nameID, 2, JSI_FUNC {
|
|
31
|
-
auto imageDataObj = arguments[1].asObject(runtime);
|
|
32
|
-
auto imageDataHostObject = ImageDataHostObject::getHOFromObject(runtime, std::move(imageDataObj));
|
|
33
|
-
setOriginalImageDataHOToEditorView(runtime, imageDataHostObject, (int) arguments[0].asNumber());
|
|
34
|
-
return {};
|
|
35
|
-
});
|
|
36
|
-
jsiRuntime.global().setProperty(jsiRuntime, nameID, std::move(setOriginalImageFcn));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}//namespace jsi_install::dce
|
|
40
|
-
|
|
41
|
-
void setOriginalImageDataHOToEditorView(Runtime &rt, ImageDataHostObject &imageDataHO, int viewTag) {
|
|
42
|
-
JNIEnv *env;
|
|
43
|
-
bool needDetach = false;
|
|
44
|
-
int state = gJvm->GetEnv((void **) &env, JNI_VERSION_1_6);
|
|
45
|
-
if (state == JNI_EDETACHED || env == nullptr) {
|
|
46
|
-
gJvm->AttachCurrentThread(&env, nullptr);
|
|
47
|
-
needDetach = true;
|
|
48
|
-
}
|
|
49
|
-
auto clzImageEditorViewModule = env->GetObjectClass(jImageEditorViewModule);
|
|
50
|
-
auto setOriginalImageCalledInJSI =
|
|
51
|
-
env->GetMethodID(clzImageEditorViewModule, "setOriginalImageCalledInJSI", "(Lcom/dynamsoft/core/basic_structures/ImageData;I)V");
|
|
52
|
-
auto jImageData = jsiConversion::core::getJImageDataFromHO(env, imageDataHO);
|
|
53
|
-
env->CallVoidMethod(jImageEditorViewModule, setOriginalImageCalledInJSI, jImageData, viewTag);
|
|
54
|
-
env->DeleteLocalRef(clzImageEditorViewModule);
|
|
55
|
-
env->DeleteLocalRef(jImageData);
|
|
56
|
-
if (needDetach) {
|
|
57
|
-
gJvm->DetachCurrentThread();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/29.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiDce.h"
|
|
6
|
+
#define JSI_FUNC [](Runtime &runtime, const Value &thisValue, const Value *arguments, size_t count) -> Value
|
|
7
|
+
|
|
8
|
+
jobject jImageEditorViewModule = nullptr;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
void install_editorView_methods(Runtime &jsiRuntime) {
|
|
12
|
+
jsi_install::dce::install_editorView_setOriginalImage(jsiRuntime);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
extern "C"
|
|
16
|
+
JNIEXPORT void JNICALL
|
|
17
|
+
Java_com_dynamsoft_reactnativelib_dce_ImageEditorViewModuleImpl_nativeInstall(JNIEnv *env, jobject thiz, jlong jsiPtr) {
|
|
18
|
+
if (!env->IsSameObject(jImageEditorViewModule, thiz)) {
|
|
19
|
+
jImageEditorViewModule = env->NewWeakGlobalRef(thiz);
|
|
20
|
+
}
|
|
21
|
+
auto rt = reinterpret_cast<Runtime *>(jsiPtr);
|
|
22
|
+
install_editorView_methods(*rt);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace jsi_install::dce {
|
|
27
|
+
void install_editorView_setOriginalImage(Runtime &jsiRuntime) {
|
|
28
|
+
auto nameID = PropNameID::forAscii(jsiRuntime, "editorView_setOriginalImage");
|
|
29
|
+
if(!jsiRuntime.global().hasProperty(jsiRuntime, nameID)) {
|
|
30
|
+
auto setOriginalImageFcn = Function::createFromHostFunction(jsiRuntime, nameID, 2, JSI_FUNC {
|
|
31
|
+
auto imageDataObj = arguments[1].asObject(runtime);
|
|
32
|
+
auto imageDataHostObject = ImageDataHostObject::getHOFromObject(runtime, std::move(imageDataObj));
|
|
33
|
+
setOriginalImageDataHOToEditorView(runtime, imageDataHostObject, (int) arguments[0].asNumber());
|
|
34
|
+
return {};
|
|
35
|
+
});
|
|
36
|
+
jsiRuntime.global().setProperty(jsiRuntime, nameID, std::move(setOriginalImageFcn));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}//namespace jsi_install::dce
|
|
40
|
+
|
|
41
|
+
void setOriginalImageDataHOToEditorView(Runtime &rt, ImageDataHostObject &imageDataHO, int viewTag) {
|
|
42
|
+
JNIEnv *env;
|
|
43
|
+
bool needDetach = false;
|
|
44
|
+
int state = gJvm->GetEnv((void **) &env, JNI_VERSION_1_6);
|
|
45
|
+
if (state == JNI_EDETACHED || env == nullptr) {
|
|
46
|
+
gJvm->AttachCurrentThread(&env, nullptr);
|
|
47
|
+
needDetach = true;
|
|
48
|
+
}
|
|
49
|
+
auto clzImageEditorViewModule = env->GetObjectClass(jImageEditorViewModule);
|
|
50
|
+
auto setOriginalImageCalledInJSI =
|
|
51
|
+
env->GetMethodID(clzImageEditorViewModule, "setOriginalImageCalledInJSI", "(Lcom/dynamsoft/core/basic_structures/ImageData;I)V");
|
|
52
|
+
auto jImageData = jsiConversion::core::getJImageDataFromHO(env, imageDataHO);
|
|
53
|
+
env->CallVoidMethod(jImageEditorViewModule, setOriginalImageCalledInJSI, jImageData, viewTag);
|
|
54
|
+
env->DeleteLocalRef(clzImageEditorViewModule);
|
|
55
|
+
env->DeleteLocalRef(jImageData);
|
|
56
|
+
if (needDetach) {
|
|
57
|
+
gJvm->DetachCurrentThread();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/29.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
6
|
-
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
7
|
-
#include "JsiCore.h"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
namespace jsi_install::dce {
|
|
12
|
-
void install_editorView_setOriginalImage(Runtime &jsiRuntime);
|
|
13
|
-
}//namespace jsi_install::dce
|
|
14
|
-
|
|
15
|
-
void setOriginalImageDataHOToEditorView(Runtime &rt, ImageDataHostObject &imageDataHO, int viewTag);
|
|
16
|
-
|
|
17
|
-
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/29.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
7
|
+
#include "JsiCore.h"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
namespace jsi_install::dce {
|
|
12
|
+
void install_editorView_setOriginalImage(Runtime &jsiRuntime);
|
|
13
|
+
}//namespace jsi_install::dce
|
|
14
|
+
|
|
15
|
+
void setOriginalImageDataHOToEditorView(Runtime &rt, ImageDataHostObject &imageDataHO, int viewTag);
|
|
16
|
+
|
|
17
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCE_JSIDCE_H_
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/28.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include "JsiDcp.h"
|
|
6
|
-
|
|
7
|
-
namespace jsiConversion::dcp {
|
|
8
|
-
void jParsedResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
-
jclass clsItem = env->FindClass("com/dynamsoft/dcp/ParsedResultItem");
|
|
10
|
-
|
|
11
|
-
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, codeType, getCodeType)
|
|
12
|
-
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, jsonString, getJsonString)
|
|
13
|
-
|
|
14
|
-
auto getParsedFields = env->GetMethodID(clsItem, "getParsedFields", "()Ljava/util/HashMap;");
|
|
15
|
-
jobject j_parsedFields = env->CallObjectMethod(jItem, getParsedFields);
|
|
16
|
-
|
|
17
|
-
jclass clsHashMap = env->FindClass("java/util/HashMap");
|
|
18
|
-
jmethodID keySet = env->GetMethodID(clsHashMap, "keySet", "()Ljava/util/Set;");
|
|
19
|
-
|
|
20
|
-
jclass clsSet = env->FindClass("java/util/Set");
|
|
21
|
-
jmethodID toArray = env->GetMethodID(clsSet, "toArray", "()[Ljava/lang/Object;");
|
|
22
|
-
|
|
23
|
-
if (!j_parsedFields) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
auto j_keySet = env->CallObjectMethod(j_parsedFields, keySet);
|
|
27
|
-
auto j_keyArray = (jobjectArray) env->CallObjectMethod(j_keySet, toArray);
|
|
28
|
-
int count = env->GetArrayLength(j_keyArray);
|
|
29
|
-
auto getFieldValue = env->GetMethodID(clsItem, "getFieldValue", "(Ljava/lang/String;)Ljava/lang/String;");
|
|
30
|
-
auto getFieldMappingStatus = env->GetMethodID(clsItem, "getFieldMappingStatus", "(Ljava/lang/String;)I");
|
|
31
|
-
auto getFieldValidationStatus = env->GetMethodID(clsItem, "getFieldValidationStatus", "(Ljava/lang/String;)I");
|
|
32
|
-
|
|
33
|
-
Object js_parsedFields(rt);
|
|
34
|
-
for (int i = 0; i < count; ++i) {
|
|
35
|
-
Object js_itemFiled(rt);
|
|
36
|
-
auto j_key = (jstring) env->GetObjectArrayElement(j_keyArray, i);
|
|
37
|
-
auto p_key = j_key?env->GetStringUTFChars(j_key, nullptr):"";
|
|
38
|
-
if(std::string(p_key).empty()) {
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
SET_STRING_PROPERTY_BY_METHOD2(jItem, js_itemFiled, value, getFieldValue, j_key)
|
|
42
|
-
js_itemFiled.setProperty(rt, "mappingStatus", env->CallIntMethod(jItem, getFieldMappingStatus, j_key));
|
|
43
|
-
js_itemFiled.setProperty(rt, "validationStatus", env->CallIntMethod(jItem, getFieldValidationStatus, j_key));
|
|
44
|
-
js_parsedFields.setProperty(rt, p_key, js_itemFiled);
|
|
45
|
-
if(j_key) {
|
|
46
|
-
env->ReleaseStringUTFChars(j_key, p_key);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
jsItem.setProperty(rt, "parsedFields", js_parsedFields);
|
|
50
|
-
}
|
|
51
|
-
}//namespace jsiConversion::dcp
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiDcp.h"
|
|
6
|
+
|
|
7
|
+
namespace jsiConversion::dcp {
|
|
8
|
+
void jParsedResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
+
jclass clsItem = env->FindClass("com/dynamsoft/dcp/ParsedResultItem");
|
|
10
|
+
|
|
11
|
+
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, codeType, getCodeType)
|
|
12
|
+
SET_STRING_PROPERTY_BY_METHOD(clsItem, jItem, jsItem, jsonString, getJsonString)
|
|
13
|
+
|
|
14
|
+
auto getParsedFields = env->GetMethodID(clsItem, "getParsedFields", "()Ljava/util/HashMap;");
|
|
15
|
+
jobject j_parsedFields = env->CallObjectMethod(jItem, getParsedFields);
|
|
16
|
+
|
|
17
|
+
jclass clsHashMap = env->FindClass("java/util/HashMap");
|
|
18
|
+
jmethodID keySet = env->GetMethodID(clsHashMap, "keySet", "()Ljava/util/Set;");
|
|
19
|
+
|
|
20
|
+
jclass clsSet = env->FindClass("java/util/Set");
|
|
21
|
+
jmethodID toArray = env->GetMethodID(clsSet, "toArray", "()[Ljava/lang/Object;");
|
|
22
|
+
|
|
23
|
+
if (!j_parsedFields) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
auto j_keySet = env->CallObjectMethod(j_parsedFields, keySet);
|
|
27
|
+
auto j_keyArray = (jobjectArray) env->CallObjectMethod(j_keySet, toArray);
|
|
28
|
+
int count = env->GetArrayLength(j_keyArray);
|
|
29
|
+
auto getFieldValue = env->GetMethodID(clsItem, "getFieldValue", "(Ljava/lang/String;)Ljava/lang/String;");
|
|
30
|
+
auto getFieldMappingStatus = env->GetMethodID(clsItem, "getFieldMappingStatus", "(Ljava/lang/String;)I");
|
|
31
|
+
auto getFieldValidationStatus = env->GetMethodID(clsItem, "getFieldValidationStatus", "(Ljava/lang/String;)I");
|
|
32
|
+
|
|
33
|
+
Object js_parsedFields(rt);
|
|
34
|
+
for (int i = 0; i < count; ++i) {
|
|
35
|
+
Object js_itemFiled(rt);
|
|
36
|
+
auto j_key = (jstring) env->GetObjectArrayElement(j_keyArray, i);
|
|
37
|
+
auto p_key = j_key?env->GetStringUTFChars(j_key, nullptr):"";
|
|
38
|
+
if(std::string(p_key).empty()) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
SET_STRING_PROPERTY_BY_METHOD2(jItem, js_itemFiled, value, getFieldValue, j_key)
|
|
42
|
+
js_itemFiled.setProperty(rt, "mappingStatus", env->CallIntMethod(jItem, getFieldMappingStatus, j_key));
|
|
43
|
+
js_itemFiled.setProperty(rt, "validationStatus", env->CallIntMethod(jItem, getFieldValidationStatus, j_key));
|
|
44
|
+
js_parsedFields.setProperty(rt, p_key, js_itemFiled);
|
|
45
|
+
if(j_key) {
|
|
46
|
+
env->ReleaseStringUTFChars(j_key, p_key);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
jsItem.setProperty(rt, "parsedFields", js_parsedFields);
|
|
50
|
+
}
|
|
51
|
+
}//namespace jsiConversion::dcp
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/28.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
6
|
-
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
7
|
-
|
|
8
|
-
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
9
|
-
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
10
|
-
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
11
|
-
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
12
|
-
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
13
|
-
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
#define SET_STRING_PROPERTY_BY_METHOD2(jObj, jsObj, propertyName, methodName, ...) \
|
|
17
|
-
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName, __VA_ARGS__); \
|
|
18
|
-
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
19
|
-
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
20
|
-
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
#include "jni.h"
|
|
24
|
-
#include "jsi/jsi.h"
|
|
25
|
-
#include "JsiCore.h"
|
|
26
|
-
|
|
27
|
-
namespace jsiConversion::dcp{
|
|
28
|
-
void jParsedResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
7
|
+
|
|
8
|
+
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
9
|
+
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
10
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
11
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
12
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
13
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#define SET_STRING_PROPERTY_BY_METHOD2(jObj, jsObj, propertyName, methodName, ...) \
|
|
17
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName, __VA_ARGS__); \
|
|
18
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
19
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
20
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
#include "jni.h"
|
|
24
|
+
#include "jsi/jsi.h"
|
|
25
|
+
#include "JsiCore.h"
|
|
26
|
+
|
|
27
|
+
namespace jsiConversion::dcp{
|
|
28
|
+
void jParsedResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DCP_JSIDCP_H_
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/28.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include "JsiDdn.h"
|
|
6
|
-
|
|
7
|
-
namespace jsiConversion::ddn {
|
|
8
|
-
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
-
env->PushLocalFrame(4);
|
|
10
|
-
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DetectedQuadResultItem");
|
|
11
|
-
jmethodID me_getLocation =env->GetMethodID(clsItem, "getLocation", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
12
|
-
jmethodID me_getConfidenceAsDocumentBoundary =env->GetMethodID(clsItem, "getConfidenceAsDocumentBoundary", "()I");
|
|
13
|
-
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
14
|
-
Object jsQuad(rt);
|
|
15
|
-
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getLocation), jsQuad);
|
|
16
|
-
jsItem.setProperty(rt, "location", jsQuad);
|
|
17
|
-
jsItem.setProperty(rt, "ConfidenceAsDocumentBoundary", env->CallIntMethod(jItem, me_getConfidenceAsDocumentBoundary));
|
|
18
|
-
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
19
|
-
env->PopLocalFrame(nullptr);
|
|
20
|
-
}
|
|
21
|
-
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
22
|
-
env->PushLocalFrame(4);
|
|
23
|
-
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DeskewedImageResultItem");
|
|
24
|
-
jmethodID me_getSourceDeskewQuad = env->GetMethodID(clsItem, "getSourceDeskewQuad", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
25
|
-
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
26
|
-
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
27
|
-
Object jsQuad(rt);
|
|
28
|
-
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getSourceDeskewQuad), jsQuad);
|
|
29
|
-
jsItem.setProperty(rt, "sourceDeskewQuad", jsQuad);
|
|
30
|
-
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
31
|
-
ImageDataHostObject imgHostObject;
|
|
32
|
-
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
33
|
-
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
34
|
-
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
35
|
-
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
36
|
-
env->PopLocalFrame(nullptr);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
40
|
-
env->PushLocalFrame(4);
|
|
41
|
-
jclass clsItem = env->FindClass("com/dynamsoft/ddn/EnhancedImageResultItem");
|
|
42
|
-
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
43
|
-
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
44
|
-
ImageDataHostObject imgHostObject;
|
|
45
|
-
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
46
|
-
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
47
|
-
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
48
|
-
env->PopLocalFrame(nullptr);
|
|
49
|
-
}
|
|
50
|
-
}//namespace jsiConversion::ddn
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "JsiDdn.h"
|
|
6
|
+
|
|
7
|
+
namespace jsiConversion::ddn {
|
|
8
|
+
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
9
|
+
env->PushLocalFrame(4);
|
|
10
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DetectedQuadResultItem");
|
|
11
|
+
jmethodID me_getLocation =env->GetMethodID(clsItem, "getLocation", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
12
|
+
jmethodID me_getConfidenceAsDocumentBoundary =env->GetMethodID(clsItem, "getConfidenceAsDocumentBoundary", "()I");
|
|
13
|
+
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
14
|
+
Object jsQuad(rt);
|
|
15
|
+
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getLocation), jsQuad);
|
|
16
|
+
jsItem.setProperty(rt, "location", jsQuad);
|
|
17
|
+
jsItem.setProperty(rt, "ConfidenceAsDocumentBoundary", env->CallIntMethod(jItem, me_getConfidenceAsDocumentBoundary));
|
|
18
|
+
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
19
|
+
env->PopLocalFrame(nullptr);
|
|
20
|
+
}
|
|
21
|
+
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
22
|
+
env->PushLocalFrame(4);
|
|
23
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/DeskewedImageResultItem");
|
|
24
|
+
jmethodID me_getSourceDeskewQuad = env->GetMethodID(clsItem, "getSourceDeskewQuad", "()Lcom/dynamsoft/core/basic_structures/Quadrilateral;");
|
|
25
|
+
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
26
|
+
jmethodID me_getCrossVerificationStatus = env->GetMethodID(clsItem, "getCrossVerificationStatus", "()I");
|
|
27
|
+
Object jsQuad(rt);
|
|
28
|
+
jsiConversion::core::jQuadToJsObject(rt, env, env->CallObjectMethod(jItem, me_getSourceDeskewQuad), jsQuad);
|
|
29
|
+
jsItem.setProperty(rt, "sourceDeskewQuad", jsQuad);
|
|
30
|
+
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
31
|
+
ImageDataHostObject imgHostObject;
|
|
32
|
+
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
33
|
+
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
34
|
+
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
35
|
+
jsItem.setProperty(rt, "crossVerificationStatus", env->CallIntMethod(jItem, me_getCrossVerificationStatus));
|
|
36
|
+
env->PopLocalFrame(nullptr);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem) {
|
|
40
|
+
env->PushLocalFrame(4);
|
|
41
|
+
jclass clsItem = env->FindClass("com/dynamsoft/ddn/EnhancedImageResultItem");
|
|
42
|
+
jmethodID me_getImageData = env->GetMethodID(clsItem, "getImageData", "()Lcom/dynamsoft/core/basic_structures/ImageData;");
|
|
43
|
+
jobject jImageData = env->CallObjectMethod(jItem, me_getImageData);
|
|
44
|
+
ImageDataHostObject imgHostObject;
|
|
45
|
+
jsiConversion::core::getHOFromJImageData(env, jImageData, imgHostObject);
|
|
46
|
+
auto jsImageData = Object::createFromHostObject(rt, std::make_shared<ImageDataHostObject>(imgHostObject));
|
|
47
|
+
jsItem.setProperty(rt, "imageData", std::move(jsImageData));
|
|
48
|
+
env->PopLocalFrame(nullptr);
|
|
49
|
+
}
|
|
50
|
+
}//namespace jsiConversion::ddn
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Allen on 24/08/28.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
6
|
-
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
7
|
-
|
|
8
|
-
#include "jni.h"
|
|
9
|
-
#include "jsi/jsi.h"
|
|
10
|
-
#include "JsiCore.h"
|
|
11
|
-
|
|
12
|
-
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
-
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
-
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
-
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
-
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
-
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
-
|
|
19
|
-
using namespace std;
|
|
20
|
-
using namespace facebook::jsi;
|
|
21
|
-
|
|
22
|
-
namespace jsiConversion::ddn {
|
|
23
|
-
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
-
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
25
|
-
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
1
|
+
//
|
|
2
|
+
// Created by Allen on 24/08/28.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#ifndef REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
6
|
+
#define REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|
|
7
|
+
|
|
8
|
+
#include "jni.h"
|
|
9
|
+
#include "jsi/jsi.h"
|
|
10
|
+
#include "JsiCore.h"
|
|
11
|
+
|
|
12
|
+
#define SET_STRING_PROPERTY_BY_METHOD(jClass, jObj, jsObj, propertyName, methodName) \
|
|
13
|
+
jmethodID methodName =env->GetMethodID(jClass, #methodName, "()Ljava/lang/String;"); \
|
|
14
|
+
jstring j##propertyName = (jstring) env->CallObjectMethod(jObj, methodName); \
|
|
15
|
+
const char* p##propertyName = j##propertyName?env->GetStringUTFChars(j##propertyName, nullptr):""; \
|
|
16
|
+
jsObj.setProperty(rt, #propertyName, std::move(p##propertyName)); \
|
|
17
|
+
if(j##propertyName) env->ReleaseStringUTFChars(j##propertyName, p##propertyName); \
|
|
18
|
+
|
|
19
|
+
using namespace std;
|
|
20
|
+
using namespace facebook::jsi;
|
|
21
|
+
|
|
22
|
+
namespace jsiConversion::ddn {
|
|
23
|
+
void jDetectedQuadResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
24
|
+
void jDeskewedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
25
|
+
void jEnhancedImageResultItemToJsObject(Runtime &rt, JNIEnv *env, jobject jItem, Object &jsItem);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#endif //REACT_NATIVE_DCV_ANDROID_SRC_MAIN_CPP_DDN_JSIDDN_H_
|