Zar(c/c++)
用于读取条形码的综合软件套件。支持EAN / UPC,Code 128,Code 39,Interleaved 2 of 5和QR Code。包括用于解码捕获的条形码图像并使用视频设备(例如网络摄像头)作为条形码扫描仪的库和应用程序,但是不能生成二维码。
Zxing (java)
支持更多的码制:datamatix、PDF417、等,zbar不能很好支持PDF417(但是在源码中有对于Pdf417码处理)。
zxing的执行解码效率低于zbar
默认是横屏的
https://zhuanlan.zhihu.com/p/28615728
参考文献
1、Android开发 QRCode二维码开发第三方框架(https://www.cnblogs.com/guanxinjing/p/11950397.html)
2、Android Zbar和Zxing
(https://www.jianshu.com/p/953ba994472d)
生成二维码
qrcode将字符串生成了一个data数据,根据这个数据,然后去绘制一个又一个的小黑块,这样就产生了我们看到的 二维码。
很多时候,我们看到二维码中间有个图片,其实这里又包含了另一个知识,那就是缺省率,
typedef enum {
QR_ECLEVEL_L = 0, ///< lowest
QR_ECLEVEL_M,
QR_ECLEVEL_Q,
QR_ECLEVEL_H ///< highest
} QRecLevel;
这个枚举,很清楚把,最高,缺省率可以高达30%,就是你选择了最高编码等级,所以我们就可以在二维码中间贴上一张 图片也不影响使用,但是如果你选择最低的,那么缺省只能达到5左右。但是越低,扫瞄速度越快,越高,意味着你的二维码也越复杂,增加扫瞄难度