iOS使用ZbarSDK实现扫描二维码

如今二维码随处可见,无论是实物商品还是各种礼券都少不了二维码的身影。而手机等移动设备又成为二维码的一个很好的应用平台,不管是生成二维码还是扫码二维码。

那么下面介绍一下如何在苹果iOS设备上使用二维码:

1. 扫描二维码(解码)
在此以ZBar作为例子构建二维码扫码应用。
首先我们需要去下载ZBar SDK
地址https://github.com/bmorton/ZBarSDK(参考)

打开压缩包,其中有ZBarSDK 文件夹
将ZBarSDK 文件夹包含到项目中来

其中包含一个libzbar.a的静态库
接着往项目中添加Framework框架及链接库(动态库、静态库)。在项目属性TARGETSSummary 中找到Linked Frameworks and Libraries
添加
AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.dylib 和libzbar.a 

然后在使用的地方引入头文件
#import "ZBarSDK.h"
调用ZBar的类必须实现ZBarReaderDelegate协议
如:UIViewController <ZBarReaderDelegate>
在- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
最后在协议方法中通过info获取结果值

id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];  
ZBarSymbol *symbol = nil;  
for(symbol in results)  
// EXAMPLE: just grab the first barcode   
break;  
  
// EXAMPLE: do something useful with the barcode data   
resultText.text = symbol.data;  

  2. 生成二维码(编码)

在生成二维码的库中QREncoder 比较好用。
同样是下载到SDK库
地址https://github.com/jverkoey/ObjQREncoder
解压后将源码库直接包含到项目中来

设置头文件路径,在TARGET中building settings  Search Path

当然也可以直接将库编译成静态库libQREcoder.a然后在包含进来

接着在Frameworks 中添加静态库的引用

然后在使用该库的地方包含头文件
#import <QREncoder/QREncoder.h>
注意:二维码显示的时候有可能会因为图像的大小而做调整,所以需要包含系统库QuartzCore.framework
最后就可以调用编码库了:

UIImage* image = [QREncoder encode:@"http://www.baidu.com/"]; 

 

你可能感兴趣的:(iOS使用ZbarSDK实现扫描二维码)