美文网首页
Android平台二维码之生成,扫描 & 识别

Android平台二维码之生成,扫描 & 识别

作者: 大桥酱 | 来源:发表于2016-10-10 10:04 被阅读474次

    1.二维码的前世今生

    “二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。 [1]

    上面是百度百科的解释。既然有二维码,那么肯定有一维码。

    一维码。最为常见的就是食品 & 书本后面的条码。

    条码起源与20世纪40年代,后来在1970年 UPC码发明,并开始广泛应用与食品包装。

    具体的介绍可以看百度百科 一维码。

    其实二维码与一维码本质上是类似的,就跟一维数组和二维数组一样。

    2.二维码的java支持库

    为了让java或者说android方便继承条码的功能,google就开发了一个zxing的库:

    https://github.com/zxing/zxing

    3.生成二维码


    1/2 2/2

    zxing 支持很多条码格式:我们这里使用QR_CODE码。也就是我们常见的微信里面的二维码。

    我们先来分析下这段代码:

    MultiFormatWriter writer =newMultiFormatWriter();

    1/2 2/2

    这是官方最新支持的格式,具体看引入的jar里面支持的格式。

    对与bitmatrix的结果,通过摸个算法,设置每个点白色,或者黑色。

    最后创建一张二维码的图片。

    4.识别二维码


    1/2 2/2

    过程也是很简单,使用MultiFormatReader来分析图片,这里不需要缺人图片的条码格式。

    如果分析下源码,就是依次使用每种格式的reader来分析,直到找到合适的为止。

    当然回了能够把Bitmap转化成Bitmatrix,然后在分析。

    1/3 2/3 3/3

    5.扫描二维码

    扫描二维码,其实比上面只多了一步,就是把camera获取的东西直接转换,然后进行识别。

    首先把camera预览的数据放入previewCallback中。

    可以看到,预览的数据data,回传递过来,然后handler的方式传递出去。

    接收data的地方:

    然后是decode data

    1/2 2/2

    参考:

    http://www.cnblogs.com/weixing/archive/2013/08/28/3287120.html

    相关文章

      网友评论

          本文标题:Android平台二维码之生成,扫描 & 识别

          本文链接:https://www.haomeiwen.com/subject/ehimyttx.html