首先,我们来看看zxing一些基本介绍。
zxing是一个开放源码的,用java实现的多种格式的1d(注1d条码主要常见的条码)

/2d条码(主要是二维码)
图像处理库,它包含了联系到其他语言的端口。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的理解。