一、zbar官方介绍

ZBar 是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图片扫描,支持多平台,例如 iPhone,Andriod 手机,同时 ZBar封装了二维码扫描的 API 开发包。

ZBar 目前条码类型有:EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code.

从上可以看出,zbar有挺多优势,封装了API,支持多平台,支持多种条码类型,包括一维、二维码。

具体主页:http://zbar.sourceforge.net/

二、zbar的python安装

进入https://pypi.python.org/pypi/zbar,可以看到最新版本是0.10,提供源码以及python2.5、python2.6下的exe版本。

File Type Py Version Uploaded on Size
zbar-0.10.tar.bz2 (md5, pgp) Source   2009-11-10 15KB
zbar-0.10.tar.gz (md5, pgp) Source   2009-11-10 18KB
zbar-0.10.win32-py2.5.exe (md5, pgp) MS Windows installer 2.5 2009-11-10 74KB
zbar-0.10.win32-py2.6.exe (md5, pgp) MS Windows installer 2.6 2009-11-10 205KB
zbar-0.10.zip (md5, pgp) Source   2009-11-10 31K
 

结论:没有whl,没有python2.7的exe安装,更不奢望64位版本之类。

1、pypi网址,找whl或者exe安装包

百度找到非官方发布的python2.7下zbar安装文件,https://github.com/jacobvalenta/zbar-py27-msi/blob/master/zbar-0.10.win32-py2.7_2.msi。

实测可用,这里为了说明pypi的编译过程,不使用该方案。

2、pypi源码安装

2.1、配置mingw编译环境

windows系统安装并配置mingw编译器,是另一个大坑,爬坑的过程不细说,简要描述如下:

1、下载mingw 5.1.6 ,地址如下:http://d1.rsdown.cn/soft1/mingw5.1.6.zip
2、解压后,双击其中的mingw.exe进行安装,选择常用的安装包,例如gcc等。
3、配置mingw安装路径,参看:http://blog.csdn.net/wangrouyi/article/details/7454687(注意,这个说明中的mingw是按照在d:\mingw下,如果你是安装在c盘,则要改成c:\mingw。)

右击我的电脑,点属性->高级->环境变量。然后:
1)、在PATH里加入D:\MinGW\bin,记得,如果里面还有其他的变量,记得要加个分号啊,分号得在英文输入模式下输入的。
2)、新建LIBRARY_PATH变量,如果有的话,在值中加入D:\MinGW\lib,这是标准库的位置。
3)、新建C_INCLUDEDE_PATH变量,值设为D\MinGW\include。
4)、新建CPLUS_INCLUDE_PATH变量,值为D\MinGW\include\c++\3.4.5;D:\MinGW\include\c++\3.4.5;D:\MinGW\include\c++\3.4.5\backward;D:\MinGW\include。

4、python中配置mingw编译器。

在C:\Python27\Lib\distutils下新建或者修改distutils.cfg文件,内容如下:

[build]
compiler=mingw32

2.2、pip安装(pip install zbar),下面开始逐项排雷。

1、pip install zbar,果然出现c语言编译错误,没有找到zbar.h头文件(下图中蓝色字体部分)

C:\Users\zou>pip install zbar
Collecting zbarDownloading http://mirrors.aliyun.com/pypi/packages/33/54/cc5819efc9ee7e34b60b41e1d2d4753b6dd0c26a41c9a552611f66aa106e/zbar-0.10.tar.bz2
Installing collected packages: zbarRunning setup.py install for zbar ... errorComplete output from command c:\python27\python.exe -u -c "import setuptools, tokenize;__file__=‘c:\\users\\joshua~1\\appdata\\local\\temp\\pip-build-pnikpa\\zbar\\setup.py‘;f=getattr(tokenize, ‘open‘, open)(__file__);code=f.read().replace(‘\r\n‘, ‘\n‘);f.close();exec(compile(code, __file__, ‘exec‘))" install --record c:\users\joshua~1\appdata\local\temp\pip-2chu03-record\install-record.txt --single-version-externally-managed --compile:running installrunning buildrunning build_extbuilding ‘zbar‘ extensioncreating buildcreating build\temp.win32-2.7creating build\temp.win32-2.7\Releasec:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -Ic:\python27\include -Ic:\python27\PC -c zbarmodule.c -o build\temp.win32-2.7\Release\zbarmodule.oIn file included from zbarmodule.c:24:
    zbarmodule.h:26:18: zbar.h: No such file or directoryIn file included from zbarmodule.c:24:zbarmodule.h:37: error: `ZBAR_ERR_NUM‘ undeclared here (not in a function)zbarmodule.h:67: error: syntax error before "zbar_image_t"zbarmodule.h:67: warning: no semicolon at end of struct or unionzbarmodule.h:69: error: syntax error before ‘}‘ tokenzbarmodule.h:69: warning: type defaults to `int‘ in declaration of `zbarImage‘zbarmodule.h:69: warning: data definition has no type or storage class


2、找zbar.h

到zbar的github目录,https://github.com/ZBar/ZBar  ,下载zbar整体源码,解压后统一放到d:\src下,找到d:\src\include\zbar.h ,同时找到d:\src\python\setup.py(python下的setup文件)

3、修改setup.py文件,增加include_dirs行,指向include目录。
    ext_modules = [Extension(‘zbar‘, [‘zbarmodule.c‘,‘enum.c‘,‘exception.c‘,‘symbol.c‘,‘symbolset.c‘,‘symboliter.c‘,‘image.c‘,‘processor.c‘,‘imagescanner.c‘,‘decoder.c‘,‘scanner.c‘,],libraries = [ ‘zbar‘ ],
            include_dirs = [ ‘..\include‘ ],(自己的路径)),

4、再次执行安装。

D:\src\python>python setup.py install
running install
running build
running build_ext
building ‘zbar‘ extension
creating build
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c zbarmodule.c -o build\temp.win32-2.7\Release\zbarmodule.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c enum.c -o build\temp.win32-2.7\Release\enum.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c exception.c -o build\temp.win32-2.7\Release\exception.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c symbol.c -o build\temp.win32-2.7\Release\symbol.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c symbolset.c -o build\temp.win32-2.7\Release\symbolset.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c symboliter.c -o build\temp.win32-2.7\Release\symboliter.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c image.c -o build\temp.win32-2.7\Release\image.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c processor.c -o build\temp.win32-2.7\Release\processor.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c imagescanner.c -o build\temp.win32-2.7\Release\imagescanner.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c decoder.c -o build\temp.win32-2.7\Release\decoder.o
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -Ic:\python27\include -Ic:\python27\PC -c scanner.c -o build\temp.win32-2.7\Release\scanner.o
writing build\temp.win32-2.7\Release\zbar.def
creating build\lib.win32-2.7
c:\mingw\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\zbarmodule.o build\temp.win32-2.7\Release\enum.o build\temp.win32-2.7\Release\exception.o build\temp.win32-2.7\Release\symbol.o build\temp.win32-2.7\Release\symbolset.o build\temp.win32-2.7\Release\symboliter.o build\temp.win32-2.7\Release\image.o build\temp.win32-2.7\Release\processor.o build\temp.win32-2.7\Release\imagescanner.o build\temp.win32-2.7\Release\decoder.o build\temp.win32-2.7\Release\scanner.o build\temp.win32-2.7\Release\zbar.def -Lc:\python27\libs -Lc:\python27\PCbuild -Lc:\python27\PC\VS9.0 -lzbar -lpython27 -lmsvcr90 -o build\lib.win32-2.7\zbar.pyd
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lzbar
collect2: ld returned 1 exit status
error: command ‘c:\\mingw\\bin\\gcc.exe‘ failed with exit status 1

继续报错,不能zbar的lib库。

5、进入https://github.com/ZBar/ZBar/tree/master/python 目录,查看python下的说明,发现如下文字:

To install this module type the following::python setup.py installDependencies
------------This module requires the ZBar Bar Code Reader, which may be obtained
from:* http://zbar.sourceforge.net/Windows users please note: the module *will NOT load* unless the ZBar
library DLL (currently libzbar-0.dll) is available in your Windows system
PATH!

简单翻译一下:

a、python zbar安装方法:python setup.py install

b、python zbar需要zbar reader,zbar reader可以从http://zbar.sourceforge.net/网址下载到。

c、windows平台,需要zbar dll,最新版本名字为libzbar-0.dll 。

6、进入http://zbar.sourceforge.net/download.html,下载windows下的zbar reader执行程序。

Windows InstallerNote that the Windows port is in an unstable, testing phase. If you do try it out, please let us know how well it‘s working for you and open a support request if you encounter any problems.The Windows Installation Guide has detailed instructions for installing and getting started with ZBar on Windows.

ZBar 0.10 Windows installerThe Windows installer now includes pre-built binaries of the dependencies (ImageMagick et al). Copyright, license, and source code details for these libraries may be found in the README included with the distribution.Windows binaries for the Python module are available from PyPI

具体网址:https://jaist.dl.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10-setup.exe ,下载后安装zbar  reader执行程序

7、安装zbar reader,默认路径 C:\Program Files (x86)\ZBar ,在bin目录下,果然找到libzbar-0.dll动态链接库文件。

8、拷贝libzbar-9.dll 到c:\python27\LIBS目录下

9、修改setup.py文件,指向zbar-0

    ext_modules = [Extension(‘zbar‘, [‘zbarmodule.c‘,‘enum.c‘,‘exception.c‘,‘symbol.c‘,‘symbolset.c‘,‘symboliter.c‘,‘image.c‘,‘processor.c‘,‘imagescanner.c‘,‘decoder.c‘,‘scanner.c‘,],libraries = [ ‘zbar-0‘ ],
            include_dirs = [ ‘..\include‘ ],),

10、再次执行 python setup.py install

C:\src\python>python setup.py install
running install
running build
running build_ext
building ‘zbar‘ extension
creating build
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c zbarmodule.c -o build\temp.win32-2.7\Release\zbarmodule.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c enum.c -o build\temp.win32-2.7\Release\enum.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c exception.c -o build\temp.win32-2.7\Release\exception.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c symbol.c -o build\temp.win32-2.7\Release\symbol.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c symbolset.c -o build\temp.win32-2.7\Release\symbolset.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c symboliter.c -o build\temp.win32-2.7\Release\symboliter.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c image.c -o build\temp.win32-2.7\Release\image.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c processor.c -o build\temp.win32-2.7\Release\processor.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c imagescanner.c -o build\temp.win32-2.7\Release\imagescanner.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c decoder.c -o build\temp.win32-2.7\Release\decoder.o
C:\mingw/bin\gcc.exe -mno-cygwin -mdll -O -Wall -I..\include -IC:\Python27\include -IC:\Python27\PC -c scanner.c -o build\temp.win32-2.7\Release\scanner.o
writing build\temp.win32-2.7\Release\zbar.def
creating build\lib.win32-2.7
C:\mingw/bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\zbarmodule.o build\temp.win32-2.7\Release\enum.o build\temp.win32-2.7\Release\exception.o build\temp.win32-2.7\Release\symbol.o build\temp.win32-2.7\Release\symbolset.o build\temp.win32-2.7\Release\symboliter.o build\temp.win32-2.7\Release\image.o build\temp.win32-2.7\Release\processor.o build\temp.win32-2.7\Release\imagescanner.o build\temp.win32-2.7\Release\decoder.o build\temp.win32-2.7\Release\scanner.o build\temp.win32-2.7\Release\zbar.def -LC:\Python27\libs -LC:\Python27\PCbuild -LC:\Python27\PC\VS9.0 -lzbar-0 -lpython27 -lmsvcr90 -o build\lib.win32-2.7\zbar.pyd
running install_lib
copying build\lib.win32-2.7\zbar.pyd -> C:\Python27\Lib\site-packages
running install_egg_info
Writing C:\Python27\Lib\site-packages\zbar-0.10-py2.7.egg-info

至此,编译并安装成功。

注意,上文中蓝色字体部分,Lib目录默认找了python27\libs目录,所以前文第8步拷贝到libs的奥秘正在于此。

原文:http://www.cnblogs.com/zhongtang/p/7148082.html

转载于:https://www.cnblogs.com/jakejian/p/9026718.html

win32 zbar相关推荐

  1. 二维码解码器Zbar+VS2010开发环境配置(使用opencv库)

    Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Co ...

  2. 二维码解码器Zbar+VS2012开发环境配置

    Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Co ...

  3. 环境配置:Win10 - VSCode - MinGW64 - OpenCV 4.5.0 - ZBar 0.23.92

    环境配置:Win10 - VSCode - MinGW64 - OpenCV 4.5.0 - ZBar 0.23.92 前言 1. VSCode 下载VSCode 安装 C/C++ 插件 项目配置 2 ...

  4. Windows10-64bit,vs2015,借助OpenCV、Zbar、Tesseract(编译环境32bit)进行数字、条形码识别。

    此次博客介绍了如何在vs2015上配置opencv.zbar.tesseract,也是为了给即将进行条形码识别工作的工程师所准备. 本次提供的代码是在32bit的编译环境下完成的. 主要内容包括:所需 ...

  5. 配置zbar识别二维码(转载)

    原文地址: http://blog.csdn.net/dcrmg/article/details/52108258   二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二 ...

  6. ZBar项目简介及安装配置

    2021SC@SDUSC 目录 一.ZBar介绍 二.ZBar的安装及配置(VS2019 + Zbar + OpenCV3.4.3) 三.组内分工 一.ZBar介绍 ZBar是一个开源软件套件,用于从 ...

  7. 使用Pyhthon,OpenCV和ZBar构建移动的条码扫描器

    使用带ZBar的OpenCV条形码和QR码扫描仪.可以非常轻松地将条形码解码为可读的文本. 使用Pyhthon,OpenCV和ZBar读取条形码和QR码为文本 1. 效果图 2. 条码分类 3. 步骤 ...

  8. ZBar与ZXing使用后感觉

    [原]ZBar与ZXing使用后感觉(上) 2014-3-18阅读2011 评论1 最近对二维码比较感兴趣,还是那句老话,那么我就对比了一下zxing和zbar 如果对于这两个的背景不了解的话,可以看 ...

  9. Don’t Use the Win32 API PostThreadMessage() to Post Messages to UI Threads(翻译)

    大龙的博客 C++博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理 Don't Use the Win32 API PostThreadMessage() to Post Me ...

最新文章

  1. 分分钟甩Word几条街,Python编辑公式竟可以如此简单
  2. 《xUnit Test Patterns》学习笔记6 - Test Double
  3. 不学spring其他,直接学spring boot
  4. 在Visual Studio中使用C#脚本(CSX脚本)生成代码
  5. CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞
  6. 机器学习中的距离/散度/熵
  7. step7支持linux,STEP7 V5.4版本要求的操作系统-工业支持中心-西门子中国
  8. matlab在xrd中的应用,XRD物相分析(Jade软件的应用).pdf
  9. php将tiff转pdf_通过命令行界面将PDF,TIFF和其他图像格式批量转换为PDF,PDF可搜索和具有Power PDF Advanced的TIFF...
  10. 打开本地html加载网页慢,网页打开慢怎么办 影响网页打开速度因素有哪些【解决方法】...
  11. Promise详尽指南
  12. Hbase slides
  13. java 数字转换开发票大写格式_Java转化数字为大写人民币
  14. 重置计算机网络设置路由器,路由器登录不上怎么办 如何重新设置路由器
  15. 【踩坑记录】—— app运行闪退(Mac版)
  16. CC2530F256RHAR -RF收发器封装:QFN40
  17. 科研热点|2022诺贝尔奖各领域奖项已揭晓(附获奖者详细信息)~
  18. Oracle 中经常遇到的一些问题
  19. 用7000字长文带你分析深圳二手房市场现况!
  20. 关于QUERY_ALL_PACKAGES权限导致Google下架apk

热门文章

  1. 联想 android 6.0升级名单,摩托罗拉公布安卓6.0升级名单
  2. signature=c237d83e2bbc7c0107922df9033dcbd4,大学英语2模拟试卷(一)
  3. 最通俗易懂的浮动(float)布局原理
  4. 5G下行理论峰值速率该如何计算?
  5. 机房收费系统---详细设计说明书
  6. Android ActivityManagerService(AMS)的Activity管理
  7. 申宝炒股-指数延续反抽小三浪行情
  8. web前段进阶:<3>逐帧动画和弹性布局
  9. 015.西门子PLC与变频器USS通讯演示
  10. Session永久有效的实现方法