zbar开源的条形码、二维码检测算法 。支持的二维码包括:EAN/UPC,QR等。支持一维码(条形码)包括:I25,CODE39,CODE128等。
//安装依赖项
sudo apt-get install libqt4-dev libv4l-dev python-gtk2-dev imagemagick libmagickwand-dev
//安装zbar工具 - zbarimg等
sudo apt-get install zbar-tools
//添加依赖
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
//下载解压源码
wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz
tar -vxzf zbar-0.10.tar.gz
//进入zbar文件夹,创建安装输出文件夹
cd zbar-0.10&&mkdir output
//配置选项 --prefix:指定install路径 CFLAGS :指定编译时的自定义头文件路径 (可选)
./configure --prefix=$PWD/output/ --enable-shared --disable-video --without-python --without-gtk --without-qt --without-imagemagick CFLAGS=""
//编译和安装 -- 文件会输出到output
make&&make install
使用以下命令测试:(zbar包里面自带一个条形码图片)
zbarimg examples/barcode.png
zbarimg examples/barcode_1.png
报错:
In file included from /usr/include/stdio.h:936:0,
from zbar/debug.h:60,
from zbar/scanner.c:34:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:140:1: error: expected identifier or ‘(’ before ‘{’ token
{
^
解决方法:
export CFLAGS="" //将CFLAGS环境变量置为空
然后重新 ./configure
或者在 ./configure 的最后加上 CFLAGS=""
./configure --prefix=$PWD/output/ --enable-shared --disable-video --without-python --without-gtk --without-qt --without-imagemagick CFLAGS=""