ZBar的使用
2012-08-01 13:27:43| 分类: 默认分类 |举报
|字号
订阅
基本介绍: 引用:http://blog.csdn.net/miracle_of_thinking/article/ details/7576532
如今二维码随处可见,无论是实物商品还是各种礼券都少不了二 维码的身影。而手机等移动设备又成为二维码的一个很好的应用 平台,不管是生成二维码还是扫码二维码。 下面介绍一下如何在苹果iOS设备上使用二维码:
扫描二维码(解码)
扫描二维码的开源库有很多如 ZBar、ZXing等。在此以ZBar作 为例子构建二维码扫码应用。
首先在github上下载ZBar SDK,地址https://github.com/ bmorton/ZBarSDK。
打开压缩包,其中有ZBarSDK 文件夹,将ZBarSDK 文件夹包 拖到项目中来。
如下图:
注意头文件路径填写:
未命名文件夹/
(Finder)
(XCode) 其中包含一个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>。
//扫描二维码
- (IBAction)play:(id)sender {
ZBarReaderViewController *reader=[[ZBarReaderViewController alloc] init];
reader.readerDelegate=self;
if ([ZBarReaderViewController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
reader.sourceType=UIImagePickerControllerSourceTypeCamera;
ZBarImageScanner *scanner=reader.scanner;
[scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
// [self presentModalViewController:reader animated:YES];
// [self.navigationController pushViewController:reader animated:YES];
[self presentViewController:reader animated:YES completion:nil];
}
}
//生成二维码
- (IBAction)newAlloc:(id)sender {
self.image.image = [QRCodeGenerator qrImageForString:@"小柯" imageSize:self.image.bounds.size.width];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
id<NSFastEnumeration>results=[info objectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol=nil;
for (symbol in results)
break;
NSLog(@"====%@",symbol.data);
[self dismissViewControllerAnimated:YES completion:nil];
}