天天看点

人生就要挑战新难度——记zxing的深化

  首先,我们来看看zxing一些基本介绍。

  zxing是一个开放源码的,用java实现的多种格式的1d(注1d条码主要常见的条码)

  

人生就要挑战新难度——记zxing的深化

  /2d条码(主要是二维码)

人生就要挑战新难度——记zxing的深化

  图像处理库,它包含了联系到其他语言的端口。zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。我们目前支持以下格式:

  upc-a,upc-e

  ean-8,ean-13

  39码

  93码

  代码128

  创新及科技基金

  库德巴

  rss-14(所有的变体

  rss扩展(大多数变体)

  qr码

  数据矩阵

  阿兹台克人('测试版'质量)

  pdf 417('阿尔法'的质量)

  zxing库的主要部分支持以下几个功能:核心代码的使用、适用于j2se客户端的版本、适用于android客户端的版本(即barcodescanner)、android的集成(通过intent支持和barcodescanner的集成)等。

  在android下生成二维码

  相应的源代码如下: 

 通过代码,我们可以得出下列的结论:

  为了更好的生成相应的二维码,我们需要将相应的二维码内容转换成相应的流对象,将流对象转换成相应的图片,这图片是不同部分变成黑白的图片。

  相应的解析的结果是:姓名:曾驰文,性别:男,年龄:27,籍贯:湖南长沙,

  解析二维码

  下面是 二维码从图片解析内容的分析与实现

  解码的流程大致分成以下几个步骤:

  1:获取摄像头byte[] data

2:对数据进行解析

在zxing客户端源码中

previewcallback 摄像头回调 data就是出自这里

planaryuvluminancesource 继承与luminancesource不同的数据原 yuv rgb  

rgbluminancesource

autofocuscallback  自动对焦。不能自动对焦的手机zxing就不能发威了(这个处理相应的摄像头的过程中,在android系统下,由于是调用硬件设备,往往系统调度无法处理,从而实现后退键反映不及时的结果)

cameramanager  摄像头管理类。打开,关闭

decodethread   线程管理主要利用到了countdownlatch

decodehandler  数据传输中枢。我理解decodethread控制线程,decodehandler发送数据

decodeformatmanager  这个配置解码格式。一维码,二维码等

captureactivityhandler 这个是解码与avtivity中介。解码成功,失败都用她回调

viewfinderview  我们看到的扫描框,搞花样就从她入手

      同样,我们来看看源代码:

 我们可以看出:

  ①指定相应的系统的参数来解码byte数组中的内容。

  ②这样数组往往会出现乱码,我们需要经过crc等等的编码格式的校正。

  ③把相应的文字赋值给对话框。

  这就是我对zxing的理解。

继续阅读