ZBar二维码扫描


ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。可以扫描含有链接的二维码,并且读取到结果后直接跳转到对应的链接。

调试中出现。

本次学习做了两个功能,一个是对二维码的扫描,另一个是生成二维码。

对二维码扫描要在真机测试。

要添加的库

QuartzCore.framework/CoreVideo.framework/CoreMedia.framework/AVFoundation.framework

libiconv.dylib/SenTestingKit.framework

添加完后就可以在自己的工程中使用了。

打开摄像头开始扫描的方法

- (IBAction)button:(id)sender {
    /*扫描二维码部分:
     导入ZBarSDK文件并引入一下框架
     AVFoundation.framework
     CoreMedia.framework
     CoreVideo.framework
     QuartzCore.framework
     libiconv.dylib
     引入头文件#import “ZBarSDK.h” 即可使用
     当找到条形码时,会执行代理方法
     
     - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
     
     最后读取并显示了条形码的图片和内容。*/
    
    ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;
    reader.supportedOrientationsMask = ZBarOrientationMaskAll;
    
    ZBarImageScanner *scanner = reader.scanner;
    
    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];
    
    [self presentModalViewController: reader
                            animated: YES];
    [reader release];
}

扫描完成会调用如下方法,我直接推入下一级视图
- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info{
    NSLog(@"ok");
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;
    [reader dismissModalViewControllerAnimated: YES];
    [[NSUserDefaults standardUserDefaults] setObject:symbol.data forKey:@"content"];
    DetailViewController *detail = [[[DetailViewController alloc]init]autorelease];
    [self.navigationController pushViewController:detail animated:YES];
}

想要将字符串转成二维码图片,只要引入头文件便可使用

imageview.image = [QRCodeGenerator qrImageForString:text.text imageSize:imageview.bounds.size.width];


file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/Shared/Cordova/Frameworks/Cordova.Framework/Cordova for architecture armv7s.

出现如上错误,解决办法把,target-build setting-architecture-build active architecture only勾选为yes。

http://stackoverflow.com/questions/12687190/new-ios6-architecture-error-file-is-universal-3-slices-but-does-not-contain-a


在真机运行出现如下错误

reason: 'Could not instantiate class named NSLayoutConstraint

解决办法,http://stackoverflow.com/questions/13201586/nsinvalidunarchiveoperationexception-could-not-instantiate-class-named-nslayout

意思是在老的ios设备没有Autolayout机制。



ZBar源码下载地址http://code4app.com/ios/%E4%BA%8C%E7%BB%B4%E7%A0%81%E6%89%AB%E6%8F%8F%E5%92%8C%E7%94%9F%E6%88%90/501a70f16803fa1c73000000

DEMO:http://download.csdn.net/detail/gwh111/5195560

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值