ZXing的编译

11 篇文章 0 订阅
1 篇文章 0 订阅
http://www.cnblogs.com/mengdd/archive/2013/08/29/3289145.html

  

Android端的条形码/二维码识别功能

  因为手机端的输入不是很方便,所以条形码/二维码的扫描是一种很有效的解决手段。

  比较流行的手机应用中,常用的二维码扫描实现,是使用了开源库——ZXing:http://code.google.com/p/zxing/

  据项目主页的介绍,这个开源项目是用Java实现的,用手机自带的摄像头,扫描条形码/二维码,不需要和服务器通信(当然这个项目也可以用于PC和服务器),就可以做一维或二维码的识别。

  支持的各种码格式很多:

                       

  下面就介绍一下如何编译运行这个项目。

 

下载项目

  去http://code.google.com/p/zxing/downloads/list下载最新的项目:命名是ZXing-x.y.zip

  目前(2013.08.29)最新的版本号是2.2:

  即  ZXing-2.2.zip:http://code.google.com/p/zxing/downloads/detail?name=ZXing-2.2.zip&can=2&q=

  下载后,解压得到的目录如下:

 

  

  我们其实只用到了android和core两个目录

 

直接使用编译好的Jar包

  根据http://code.google.com/p/zxing/wiki/GettingStarted

  上说的,如果你想直接使用编译好的jar包,那么直接去:http://repo1.maven.org/maven2/com/google/zxing/ 下载jar包即可。

  我们这里需要的是core下的jar包。下载core-2.2.jar即可。

   然后,在Eclipse中,导入zxing-2.2\android下的项目,导入后会有一些错误。

  新建libs目录,将刚才下载的core-2.2.jar拷贝进去,错误就都消失了。

  然后就直接右键项目Run即可。

  如果想自己编译,也算是很方便。下面讲讲。

 

编译工具准备

  首先得准备两个工具:

  Ant: http://ant.apache.org/

  Maven: http://maven.apache.org/

 

  下载链接:

  Ant: http://ant.apache.org/bindownload.cgi

  Maven: http://maven.apache.org/download.cgi

  下载后放在合适的路径下解压缩,然后将bin目录添加到环境变量Path中即可。两个都是

  可以在cmd中查看版本号来验证配置是否成功:

 

 

手动编译的配置

  首先,从命令行进入到zxing-2.2目录下:

  输入如下命令:

  android update project --path android

  成功后就可以看到zxing-2.2\android目录下新增了一个名为local.properties的文件,里面内容是:sdk.dir=你的Android SDK目录

 

编译Jar包

  首先编译core,方法如下:

  命令行进入到zxing-2.2\core路径下,输入命令:

  mvn -DskipTests -Dgpg.skip=true install

  运行完之后core目录下会生成一个target目录。

 

  里面就有编译好的各种东西,包括文档、需要的Jar包等(比如我的这个叫core-2.3-SNAPSHOT.jar)。

 

编译Android项目

  首先,把刚才生成的jar包(core-2.3-SNAPSHOT.jar)拷贝进zxing-2.2\android目录下的libs目录。

  然后,命令行进入到zxing-2.2\android路径下,输入命令:

  ant debug

  生成的bin目录下就包含了.apk。

  (如果关联了360手机助手或者豌豆荚,USB连接手机后,双击这个.apk即可安装应用,因为是debug版的,所以会提示是山寨应用。)

 

  当然,也可以将Android程序导入Eclipse,libs中添加Jar包之后右键项目来编译和运行,如前所述。

 

参考资料

  ZXing项目地址:

  http://code.google.com/p/zxing/

  GettingStarted:

  http://code.google.com/p/zxing/wiki/GettingStarted

  博客:

  http://www.cnblogs.com/keyindex/archive/2011/06/08/2074900.html

  http://my.eoe.cn/isnull/archive/5879.html

  http://blog.csdn.net/xiaanming/article/details/10163203

转载的东西: 本来zxing的c++部分不是为windows准备的,在windows中编译应该用mingw比较合适。但我不熟悉这个。今天试一下,似乎可以在VS2008编译。虽然有很多问题,不过都可以解决的。 大概有如下问题: 1。isnan, NAN, INFINITY, fmax等一些常量或函数找不到,这是linux与windows包含文件的差异。自己创建就行,我做在nan.cpp和nan.h之中。 2。文件同名:可以把那些文件编译到不同目录,这样就不会干扰了。默认是编译到同一个目录。 3。变长数组的语法:GCC支持变长的数组变量,比如 void gcc(int len) { int data[len]; } 但VC不支持,所以很多地方都要改过来。我的做法是:查到它所有的调用之处,找一个比较大的数值来取代len。 4。iconv.h: 要下载: http://gnuwin32.sourceforge.net/packages/libiconv.htm 需要DLL和lib导入库。我上传的代码不用iconv。通过设置NO_ICONV,可以不需要libiconv,但是扫描结果也没有转换,需要调用方自己做字符集转换。 经过这些,应该可以编译了。 编译它的示例: 这要求有ImageMagick,直接下载一个安装, 安装完成后,新建一个windows控制台项目,导入示例,设置好ImageMagick和zxing头文件和库文件目录。编译后,运行。 我放在zxtest项目中。 根据示例,写pascal接口,这部分代码放在ZXingDLL中。 通过分析,LuminanceSource应该是一个zxing分析图像的接口,要从这个派生出来一个类才能让zxing工作。示例是用MagickBitmapSource ,它用了ImageMagick库,太大,所以我分析了源码,发现只要输出灰度就行了,这样我在DELPHI中获取图像,然后转成灰度图,再转进来。具体看我的DELPHI和lazarus代码。 上传的压缩包没有带dll,只有工程文件,谁有VS2008编译一下吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值