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

  • 相关阅读:
    Crontab问题总结
    确定两个 Geometry 实例之间的关系
    Silverlight 多点触控(MultiTouch)
    在.NET中嵌入IronPython 交互
    Siebel集成OBI报表
    Silverlight XPS (PPT) Online
    Siebel Data Validation Manage 数据验证
    Siebel 附件清理
    Siebel 消息广播管理
    怎样创建一个.NET RIA Services Application (二)
  • 原文地址:https://www.cnblogs.com/lzh-Linux/p/4475966.html
Copyright © 2020-2023  润新知