本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
身份证银行卡/二维码/条码识别库等Scanner功能源码
安卓巴士 · 1078浏览量 · 发布于2021-02-05 +关注

作者shouzhong,源码Scanner,识别库,识别器可选择,这里有你常用的二维码/条码识别,还有你可能用到的身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证识别,如果没有你想要的,可以自定义识别器。该库只识别扫描框内的图像,识别速率上大大提高,而且这个库比起其它的库就是解决了摄像头预览变形,预览页面高度自定义,你可以像常规一样整个页面都是预览,或者你可以选择在任何位置定义任何尺寸的预览,扫描框也高度自定义,你可以像常规一样居中,或者你也可以在预览的任何位置定义任何尺寸的扫描框(实际识别的扫描框和画上去的扫描框不一定是一样的,由你自己决定)。


源码提取码: biay 


预览图效果:

QQ截图20210205100234.png

使用

依赖

implementation 'com.shouzhong:Scanner:1.1.3'


以下选择自己需要的

// zxing
implementation 'com.google.zxing:core:3.3.3'
// zbar
implementation 'com.shouzhong:ScannerZBarLib:1.0.0'
// 银行卡识别
implementation 'com.shouzhong:ScannerBankCardLib:1.0.3'
// 身份证识别
implementation 'com.shouzhong:ScannerIdCardLib:1.0.4'
// 车牌识别
implementation 'com.shouzhong:ScannerLicensePlateLib:1.0.3'
// 图片文字识别
implementation 'com.shouzhong:ScannerTextLib:1.0.0'
// 黄图识别
implementation 'com.shouzhong:ScannerNsfwLib:1.0.0'
// 驾驶证识别
implementation 'com.shouzhong:ScannerDrivingLicenseLib:1.0.1'
// 身份证识别(第二种方式)
implementation 'com.shouzhong:ScannerIdCard2Lib:1.0.0'


代码

基本使用

<pre data-cke-widget-data="{"code":"

\n\n

\n","classes":[]}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">

    


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scanner);
    scannerView = findViewById(R.id.sv);
    scannerView.setViewFinder(new ViewFinder(this));
    scannerView.setSaveBmp(true);
    scannerView.setEnableZXing(true);
    scannerView.setEnableZBar(true);
    scannerView.setEnableBankCard(true);
    scannerView.setEnableIdCard(true);
    scannerView.setEnableLicensePlate(true);
    scannerView.setCallback(new Callback() {
        @Override
        public void result(Result result) {
            tvResult.setText("识别结果:\n" + result.toString());
            scannerView.restartPreviewAfterDelay(2000);
        }
    });
}

@Override
protected void onResume() {
    super.onResume();
    scannerView.onResume();
}

@Override
protected void onPause() {
    super.onPause();
    scannerView.onPause();
}


开启或者关闭某个识别器

// 启用zxing识别器
scannerView.setEnableZXing(true);
// 启用zbar识别器
scannerView.setEnableZBar(true);
// 启用银行卡识别器
scannerView.setEnableBankCard(true);
// 启用身份证识别器(这里只支持2代身份证)
scannerView.setEnableIdCard(true);
// 启用车牌识别
scannerView.setEnableLicensePlate(true);
// 启用驾驶证识别
scannerView.setEnableDrivingLicense(true);
// 启用身份证识别(第二种方式)
scannerView.setEnableIdCard2(true);


如果你想自定义识别器

scannerView.setScanner(new IScanner() {
    /**
     * 这里实现自己的识别器,并把识别结果返回
     *
     * @param data 矩形框内nv21图像数据
     * @param width 图像宽度
     * @param height 图像高度
     * @return
     * @throws Exception
     */
    @Override
    public Result scan(byte[] data, int width, int height) throws Exception {
        // 如果你想转为Bitmap,请使用NV21.nv21ToBitmap(byte[] nv21, int width, int height)
        return null;
    }
});


这里没给默认的预览页面,需要自己自定义,请参考demo

回调说明

Result

属性说明
TYPE_CODE类型:二维码/条码
TYPE_ID_CARD_FRONT类型:身份证人头面
TYPE_ID_CARD_BACK类型:身份证国徽面
TYPE_BANK_CARD类型:银行卡
TYPE_LICENSE_PLATE类型:车牌
TYPE_DRIVING_LICENSE类型:驾驶证
type结果类型
path保存的图片路径
data数据
// 以下是对data的说明
// 当type为TYPE_CODE,TYPE_BANK_CARD,TYPE_LICENSE_PLATE时,data为字符串
// 当type为TYPE_ID_CARD_FRONT时,data为json字符串,格式如下
{
	"cardNumber": "21412412421",// 身份证号
	"name": "张三",// 姓名
	"sex": "男",// 性别
	"nation": "汉",// 民族
	"birth": "1999-01-01",// 出生
	"address": "地址"// 地址
}
// 当type为TYPE_ID_CARD_BACK时,data为json字符串,格式如下
{
	"organization": "签发机关",// 签发机关
	"validPeriod": "20180101-20380101"// 有效期限
}
// 当type为TYPE_DRIVING_LICENSE时,data为json字符串,格式如下
{
	"cardNumber": "43623446432",// 证号
	"name": "张三",// 姓名
	"sex": "男",// 性别
	"nationality": "中国",// 国籍
	"address": "地址",// 地址
	"birth": "1999-01-01",// 出生日期
	"firstIssue": "2018-01-01",// 初次领证日期
	"_class": "C1",// 准驾车型
	"validPeriod": "20180101-20240101"// 有效期限
}


BankCardInfoBean

属性或方法说明
cardNumber银行卡号
cardType银行卡(英文)类型
bank银行(英文)名称
getCNBankName获取银行(中文)名称
getBankId获取银行编号
getCNCardType获取银行卡(中文)类型

方法说明

ScannerView

方法名说明
setViewFinder扫描区域
setCallback扫码成功后的回调
setCameraDirection摄像头方向,后置为Camera.CameraInfo.CAMERA_FACING_BACK,前置为Camera.CameraInfo.CAMERA_FACING_FRONT
setEnableZXing是否启用zxing识别器,默认false
setEnableZBar是否启用zbar识别器,默认false
setEnableQrcode是否启动二维码识别,默认true,只有在zxing或者zbar开启时有效
setEnableBarcode是否启动条码识别,默认true,只有在zxing或者zbar开启时有效
setEnableBankCard是否启用银行卡识别器,默认false
setEnableIdCard是否启用身份证识别器,默认false
setEnableIdCard2是否启用身份证识别器(第二种方式),默认false
setEnableDrivingLicense是否启用驾驶证识别器,默认false
setEnableLicensePlate是否启用车牌识别器,默认false
setScanner自定义识别器
onResume开启扫描
onPause停止扫描
restartPreviewAfterDelay设置多少毫秒后重启扫描
setFlash开启/关闭闪光灯
toggleFlash切换闪光灯的点亮状态
isFlashOn闪光灯是否被点亮
setShouldAdjustFocusArea设置是否要根据扫码框的位置去调整对焦区域的位置,部分手机不支持,默认false
setSaveBmp设置是否保存识别的图片,默认false
setRotateDegree90Recognition是否在原来识别的图像基础上旋转90度继续识别,默认false

ScannerUtils

方法名说明
decodeCode二维码/条码识别,建议在子线程运行
decodeBank银行卡识别,建议在子线程运行
getBankCardInfo获取银行卡信息,请在子线程运行
decodeIdCard身份证识别,建议在子线程运行
decodeId2Card身份证识别(第二种方式),建议在子线程运行
decodeDrivingLicense驾驶证识别,建议在子线程运行
decodeLicensePlate车牌识别,建议在子线程运行
decodeText图片文字识别,请在子线程运行
decodeNsfw黄图识别,大于0.3可以说图片涉黄,建议在子线程运行
createBarcode条码生成,建议在子线程运行
createQRCode二维码生成,建议在子线程运行
addLogo往图片中间加logo

NV21

方法名说明
nv21ToBitmapnv21转bitmap
bitmapToNv21bitmap转nv21


源码使用过程中,如无法搭建或有增加其他功能需求,可联系QQ:236-0248-666 ,付费搭建安装修改服务!
温馨提示:网站源码只作为学习或研究使用,如需商业使用请购买正版!

相关推荐

一款Android平台的LivaData的消息总线框架

相关信息 安卓巴士 · 674浏览 · 2021-02-08 10:54:59
一个Android快速图片加载框架BaseImageLoader

相关信息 一路向西 · 725浏览 · 2020-12-28 08:45:18
一个高度自定义的安卓视频框架案例

相关信息 iamitnan · 601浏览 · 2019-12-26 17:57:17
学习各种项目架构的知乎日报安卓案例源码

相关信息 冷月葬花魂 · 688浏览 · 2019-07-08 16:05:56
Android快速开发框架RapidDevelop

相关信息 kenrry1992 · 605浏览 · 2019-06-24 14:19:20
一个安卓Kotlin轻量级依赖注入框架

相关信息 匿名 · 577浏览 · 2019-04-09 09:50:51
加载中

0评论

评论
我是安卓代码搬运工,汇集了很多非常不错的android源码项目案例,希望能够帮到需要学习的朋友。
  • 源码信息
  • 所需 5 点数
  • 源码作者:匿名作者
  • 源码大小:140MB
  • 源码类型:android源码
  • 显示语言: 简体中文
  • 运行环境:未知
分类专栏
小鸟云服务器
扫码进入手机网页