《打造极致二维码扫描系列》 -- ZBar开发详解

什么是ZBar?如果你是一个iOS开发
摘要由CSDN通过智能技术生成


什么是ZBar?


ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。


如果你是一个iPhone应用开发人员,做到二维码模块的时候,是不是会考虑ZBar开源项目来助你一臂之力呢?可是我这里说的是Android平台的开发,我为什么提到ZBar项目呢,难道我要用ZBar在Android平台扫描二维码吗?对的,没有错!这将会是一个极其不错的选择。为什么这么说呢,不是很多Android开发都是用ZXing来解析二维码的么?好吧,ZXing是我下一篇文章要写的,这里先抛砖引玉说一点点。我将ZXing和ZBar做一个比较,说说它们的优缺点,便于大家的取舍。


  • ZXing项目的示例程序对于摄像头的控制写的非常全面,ZBar的没有
  • ZBar基于C语言编写,解码效率高于ZXing项目
  • ZBar是日本人写的,对于中文解析会乱码这个肯定有人遇到过的,ZXing不会乱码
  • 扫描框的绘制,ZXing的扫描框绘制是自定义View的,截取区域不好控制(至少我没控制好),ZBar的可以自定义,只要你会计算截取区域

这里需要着重说一下第四点,我也是沿着解决这个第四点和第二点的问题才思考了这么多东西的。好烦躁自己的这种强迫症啊抓狂


下载ZBar项目

编写ZBar示例程序


1. 着重介绍一下扫描截取界面的计算:


  • pt: 预览图中二维码图片的左上顶点坐标,也就是手机中相机预览中看到的待扫描二维码的位置
  • qrheight: 预览图中二维码图片的高度
  • qrwidth: 预览图中二维码图片的宽度
  • pheight:预览图的高度,也即camera的分辨率高度
  • pwidth: 预览图的宽度,也即camera的分辨率宽度

  • st: 布局文件中扫描框的左上顶点坐标
  • sheight: 布局文件中扫描框的高度
  • swidth: 布局文件中扫描框的宽度
  • cheight:布局文件中相机预览控件的高度
  • cwidth: 布局文件中相机预览控件的宽度


其中存在这样一个等比例公式:


ptx / pwidth = stx / cwidth ;

pty / pheight = sty / cheight ;

qrwidth / pwidth = swidth / cwidth ;

qrheight / pheight = sheight / cheight ;


即:


ptx = stx * pwidth / cwidth ;

pty = sty * pheight / cheight ;

qrwidth = swidth * pwidth / c

  • 11
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 43
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值