zoukankan      html  css  js  c++  java
  • android之二维码扫描的实现

    二维码扫描引擎有 ZBar 和ZXing 

    一、 使用开源ZXing扫描的缺点

    1、原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做

    2、有效扫描区域不好控制,可能是我自己技术不成熟,没找到好方法

    3、ZXing是Java写的,对二维码的解析效率没有ZBar快

    二、 使用iOS开发经常使用的ZBar扫描的缺点

    1、 ZBar是C实现的二维码解析,但是在解析中文时会乱码

    2、 ZBar的扫描界面对相机的控制没有ZXing封装的好

    基于以上一些原因,将二者结合起来,用ZXing来控制摄像头取得图像,用ZBar来解析扫描到的数据,最终形成目前的项目。

    ZBar可以直接扫二维码和条形码, 

    ZXing可以直接扫二维码, 如果要扫条形码,则需要去改改代码花点功夫了。

    维码库有两个,分别是ZXing和ZBar,其中ZXing在Android开发中较为常见,而ZBar则在IOS开发中较为常见,更重要的一点是,这两个库都是开源

    1、相机的获取及相机的交互处理

    2、二维码图片的获取

    3、二维码图片的解析

    //获取照相机的方法
    public static Camera getCameraInstance()
    {
    Camera mCamera = null;
    try
    {
    mCamera = Camera.open();
    //没有后置摄像头,尝试打开前置摄像头*******************
    if (mCamera == null)
    {
    Camera.CameraInfo mCameraInfo = new Camera.CameraInfo();
    int cameraCount = Camera.getNumberOfCameras();
    for (int camIdx = 0; camIdx < cameraCount; camIdx++)
    {
    Camera.getCameraInfo(camIdx, mCameraInfo);
    if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT)
    {
    mCamera = Camera.open(camIdx);
    }
    }
    }
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    return mCamera;
    }

  • 相关阅读:
    全排列和几道例题
    NOJ1333: [蓝桥杯2017初赛]Excel地址
    力扣5-最长回文子串-(Manacher算法)
    CF1003E-Tree Constructing-(构造+dfs)
    NOJ1329:[蓝桥杯2017初赛]k倍区间-(前缀和)
    Java 时间
    小魂和他的数列-(离散+二分+树状数组)
    AC自动机入门和几道例题
    java写入加速
    清理 Excel 导出的 HTML 的多余属性
  • 原文地址:https://www.cnblogs.com/lzh-Linux/p/4475966.html
Copyright © 2011-2022 走看看