rnkit-excard-idcard v1.0.0
易道博识-图像识别 for React Native.
此分支只支持 身份证 识别, 如需其它请到 Master 分支获取.
Getting Started
First, cd to your RN project directory, and install RNMK through rnpm . If you don't have rnpm, you can install RNMK from npm with the command npm i -S rnkit-excard-idcard and link it manually (see below).
iOS
React Native < 0.29 (Using rnpm)
rnpm install rnkit-excard-idcardReact Native >= 0.29
$npm install -S rnkit-excard-idcard$react-native link rnkit-excard-idcard
Manually
- Add
node_modules/rnkit-excard-idcard/ios/RNKitExcard.xcodeprojto your xcode project, usually under theLibrariesgroup - Add
libRNKitExcard.a(fromProductsunderRNKitExcard.xcodeproj) to build target'sLinked Frameworks and Librarieslist - Add ocr framework to
$(PROJECT_DIR)/Frameworks.
Android
React Native < 0.29 (Using rnpm)
rnpm install rnkit-excard-idcardReact Native >= 0.29
$npm install -S rnkit-excard-idcard$react-native link rnkit-excard-idcard
Manually
- JDK 7+ is required
Add the following snippet to your
android/settings.gradle:include ':rnkit-excard-idcard' project(':rnkit-excard-idcard').projectDir = new File(rootProject.projectDir, '../node_modules/rnkit-excard-idcard/android/app')Declare the dependency in your
android/app/build.gradledependencies { ... compile project(':rnkit-excard-idcard') }Import
import io.rnkit.excard.EXOCRPackage;and register it in yourMainActivity(or equivalent, RN >= 0.32 MainApplication.java):@Override protected List<ReactPackage> getPackages() { return Arrays.asList( new MainReactPackage(), new EXOCRPackage() ); }Add Module
ExBankCardSDKAndExCardSDKIn Your Main Project.
Finally, you're good to go, feel free to require rnkit-excard-idcard in your JS files.
Have fun! :metal:
Basic Usage
Import library
import RNKitExcard from 'rnkit-excard-idcard';Init
RNKitExcard.config({
DisplayLogo: false
....
})Init Params
| Key | Type | Default | Description |
|---|---|---|---|
| OrientationMask | string | 'MaskAll' | 方向设置,设置扫描页面支持的识别方向 |
| ByPresent | BOOL | NO | 扫描页面调用方式设置,是否以present方式调用,默认为NO,YES-以present方式调用,NO-以sdk默认方式调用(push或present) |
| NumberOfSpace | BOOL | YES | 结果设置,银行卡号是否包含空格 |
| DisplayLogo | BOOL | YES | 是否显示logo |
| EnablePhotoRec | BOOL | YES | EnablePhotoRec |
| FrameColor | int | 扫描框颜色, 必须与FrameAlpha共同设置 | |
| FrameAlpha | float | 扫描框透明度, 必须与FrameColor共同设置 | |
| ScanTextColor | int | 扫描字体颜色 | |
| IDCardScanNormalTextColor | int | 正常状态扫描字体颜色 (身份证) | |
| IDCardScanErrorTextColor | int | 错误状态扫描字体颜色 (身份证) | |
| BankScanTips | string | 银行卡扫描提示文字 | |
| DRCardScanTips | string | 驾驶证扫描提示文字 | |
| VECardScanTips | string | 行驶证扫描提示文字 | |
| BankScanTips | string | 银行卡扫描提示文字 | |
| IDCardScanFrontNormalTips | string | 身份证正常状态正面扫描提示文字 | |
| IDCardScanFrontErrorTips | string | 身份证错误状态正面扫描提示文字 | |
| IDCardScanBackNormalTips | string | 身份证正常状态背面扫描提示文字 | |
| IDCardScanBackErrorTips | string | 身份证错误状态背面扫描提示文字 | |
| fontName | string | 扫描提示文字字体名称 | |
| ScanTipsFontSize | float | 扫描提示文字字体大小 | |
| IDCardNormalFontName | string | 正常状态扫描提示文字字体名称 | |
| IDCardNormalFontSize | float | 正常状态扫描提示文字字体大小 | |
| IDCardErrorFontName | string | 错误状态扫描提示文字字体名称 | |
| IDCardErrorFontSize | float | 错误状态扫描提示文字字体大小 | |
| quality | float | 图片清晰度, 范围(0-1) |
OrientationMask
- Portrait
- LandscapeLeft
- LandscapeRight
- PortraitUpsideDown
- Landscape
- MaskAll
- AllButUpsideDown
一、身份证识别
1. 使用摄像头、相册识别
try {
const bFront = true // 身份证方向,true-正面,false-背面
const result = await RNKitExcard.recoIDCardFromStreamWithSide(bFront);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}2. 使用远程或本地图片识别
try {
const imagePath = '...';
const result = await RNKitExcard.recoIDCardFromStillImage(imagePath);
} catch (error) {
if (error.code === -1) {
console.log('on cancel')
} else {
console.log(error)
}
}返回值
| Key | Type | Default | Description |
|---|---|---|---|
| type | int | 1:正面 2:反面 | |
| name | string | 姓名 | |
| gender | string | 性别 | |
| nation | string | 名族 | |
| birth | string | 出生 | |
| address | string | 地址 | |
| code | string | 身份证 | |
| issue | string | 签发机关 | |
| valid | string | 有效期 | |
| frontShadow | int | 1:正面图像有遮挡 0:正面图像无遮挡 | |
| backShadow | int | 1:背面图像有遮挡 0:背面图像无遮挡 | |
| faceImgPath | string | 人脸截图 | |
| frontFullImgPath | string | 身份证正面全图 | |
| backFullImgPath | string | 身份证背面全图 |
二、常量
const sdkVersion = RNKitExcard.sdkVersion;
const kernelVersion = RNKitExcard.kernelVersion;| Key | Type | Default | Description |
|---|---|---|---|
| sdkVersion | string | sdk版本号 | |
| kernelVersion | string | 识别核心版本号 |
三、clean 清理图片临时目录
try {
const result = await RNKitExcard.clean();
} catch (error) {
console.log(error)
}Contribution
- @simamn The main author.
Questions
Feel free to contact me or create an issue
made with ♥
8 years ago