npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tnrn-excard

v3.0.0

Published

易道博识-图像识别 for ReactNative

Downloads

15

Readme

npm react-native MIT Downloads

易道博识-图像识别 for React Native.

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 tnrn-excard and link it manually (see below).

iOS

  • React Native < 0.29 (Using rnpm)

    rnpm install tnrn-excard

  • React Native >= 0.29

    $npm install -S tnrn-excard

    $react-native link tnrn-excard

  • Notice

    Build Settings->Search Paths->Framework Search Paths 中加入路径 $(SRCROOT)/../node_modules/tnrn-excard/ios/Framework

    Build Settings->Link->Other Linker Flags 中加入 -framework "ExCardSDK"-framework "ExBankCardSDK"

    最后还需要手动导入 bundle 资源文件:

    在主工程中找到 Libraries 下面的 RNKitExcard,然后找到 Framework 文件夹,鼠标右键 Show in Finder,然后将里面的两个 .bundle 文件拖入主工程中,切记,一定要 勾选 add to targets不需要勾选 copy items if meed

Android

  • React Native < 0.29 (Using rnpm)

    rnpm install tnrn-excard

  • React Native >= 0.29

    $npm install -S tnrn-excard

    $react-native link tnrn-excard

Manually

  1. JDK 7+ is required
  2. Add the following snippet to your android/settings.gradle:
include ':tnrn-excard'
project(':tnrn-excard').projectDir = new File(rootProject.projectDir, '../node_modules/tnrn-excard/android/app')
  1. Declare the dependency in your android/app/build.gradle
dependencies {
    ...
    compile project(':tnrn-excard')
}
  1. Import import io.tnrn.excard.EXOCRPackage; and register it in your MainActivity (or equivalent, RN >= 0.32 MainApplication.java):
@Override
protected List<ReactPackage> getPackages() {
    return Arrays.asList(
            new MainReactPackage(),
            new EXOCRPackage()
    );
}
  1. Add Module ExBankCardSDK And ExCardSDK In Your Main Project.

Finally, you're good to go, feel free to require tnrn-excard in your JS files.

Have fun! :metal:

Basic Usage

Import library

import RNExcard from 'tnrn-excard';

Init

RNExcard.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 result = await RNExcard.recoBankFromStream();
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

2. 使用远程或本地图片识别

try {
	const imagePath = '...';
	const result = await RNExcard.recoBankFromStillImage(imagePath);
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

返回值

| Key | Type | Default | Description | | --- | --- | --- | --- | | bankName | string | | 银行名称 | | cardName | string | | 卡名称 | | cardType | string | | 卡类型 | | cardNum | string | | 卡号 | | validDate | string | | 有限期 | | fullImgPath | string | | 银行卡全图 | | cardNumImgPath | string | | 银行卡号截图 |

二、驾驶证识别

1. 使用摄像头、相册识别

try {
	const result = await RNExcard.recoDRCardFromStream();
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

2. 使用远程或本地图片识别

try {
	const imagePath = '...';
	const result = await RNExcard.recoDRCardFromStillImage(imagePath);
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

返回值

| Key | Type | Default | Description | | --- | --- | --- | --- | | name | string | | 姓名 | | sex | string | | 性别 | | nation | string | | 国籍 | | cardId | string | | 身份证号码 | | address | string | | 住址 | | birth | string | | 出生日期 | | issueDate | string | | 初次领证时间 | | driveType | string | | 准驾车型 | | validDate | string | | 有效期至日期 | | fullImgPath | string | | 驾驶证全图 |

三、行驶证识别

1. 使用摄像头、相册识别

try {
	const result = await RNExcard.recoVECardFromStream();
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

2. 使用远程或本地图片识别

try {
	const imagePath = '...';
	const result = await RNExcard.recoVECardFromStillImage(imagePath);
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

返回值

| Key | Type | Default | Description | | --- | --- | --- | --- | | plateNo | string | | 号牌号码 | | vehicleType | string | | 车辆类型 | | owner | string | | 所有人 | | address | string | | 住址 | | model | string | | 品牌型号 | | useCharacter | string | | 使用性质 | | engineNo | string | | 发动机号 | | VIN | string | | 车辆识别代码 | | registerDate | string | | 注册日期 | | issueDate | string | | 发证日期 | | fullImgPath | string | | 行驶证全图 |

四、身份证识别

1. 使用摄像头、相册识别

try {
	const bFront = true  // 身份证方向,true-正面,false-背面
	const result = await RNExcard.recoIDCardFromStreamWithSide(bFront);
} catch (error) {
	if (error.code === -1) {
		console.log('on cancel')
	} else {
		console.log(error)
	}
}

2. 使用远程或本地图片识别

try {
	const imagePath = '...';
	const result = await RNExcard.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 = RNExcard.sdkVersion;
const kernelVersion = RNExcard.kernelVersion;

| Key | Type | Default | Description | | --- | --- | --- | --- | | sdkVersion | string | | sdk版本号 | | kernelVersion | string | | 识别核心版本号 |

六、clean 清理图片临时目录

try {
	const result = await RNExcard.clean();
} catch (error) {
	console.log(error)
}

Contribution

Questions

Feel free to contact me or create an issue

made with ♥