• 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;
    }

  • 相关阅读:
    HDU4348To the moon主席树,区间修改
    不修改的主席(HJT)树-HDU2665,POJ-2104;
    斐波那契数列性质
    HDU-2795Billboard+对宽度建立线段树
    BZOJ-3343教主的魔法+分块(大块排序二分)
    BZOJ4034 [HAOI2015]树上操作+DFS序+线段树
    ECfinal-D-Ice Cream Tower-二分+贪心
    codeforce617E-XOR and Favorite Number莫队+异或前缀和
    BZOJ1878[SDOI2009]HH的项链+莫队算法模板
    POJ-1222EXTENDED LIGHTS OUT-位运算枚举模板
  • 原文地址:https://www.cnblogs.com/lzh-Linux/p/4475966.html
Copyright © 2020-2023  润新知