zbar移植的是C源码,zxing移植的是C++代码。两者对比:
1.zxing支持更多的码制:datamatix、PDF417、等,zbar不能很好支持PDF417(但是在源码中有对于Pdf417码处理)。
2.zxing的执行解码效率低于zbar,从耗费内存空间角度看,zbar更适合嵌入式设备开发,大部分手机app的解码采用的是zxing,因为zxing当初就是面向android开发的。
3.zbar和zxing 两者都不能 很好的支持 条码扫描,在摄像头分辨率低,目标条码打印在曲面上或者目标条码密集或扫描角度非垂直的情况下,很难识别,且条码扫描会产生误读,这种致命缺点致使激光扫描头任然为条码识读领域的工业级设备。
4.zxing在解码运算中执行的浮点运算非常耗时,一般不支持浮点运算的CPU在做图像处理方面会严重延时,我曾将zxing中的图像转换部分浮点转整形后导致扫描PDF417图形结果错误。
5.两者在扫描QR码方面基本没有什么差异,都能准确快速的接触码值。
离线
Android中用于二维码相关的库比较少,并且大多数已经不再维护(具体可见 https://android-arsenal.com/tag/81 )。
其中最常用的是zxing和zbar,zxing项目是谷歌推出的用来识别多种格式条形码的开源项目,
项目地址为 https://github.com/zxing/zxing ,zxing有多个人在维护,
覆盖主流编程语言,也是目前还在维护的较受欢迎的二维码扫描开源项目之一。
zbar则是主要用C来写的,速度极快,推出了iPhone的SDK和Android的相关调用方法(JNI),
但这个项目已经有几年不维护了,目前并没有维护下去的意思,见 https://github.com/ZBar/ZBar 。
离线