关于ZBarSDK的使用

ZBarSDK是二维码/条码读写的一个库。

这个库是开源的,下载源码请点击这里

我们平时看到的libzbar.a和一堆头文件是编译后的产物,相对于Google的二维码/条码识别库还是快很多的,现在应用也十分广泛,所以要用到二维码或者条码生成,读取等功能的时候,建议适用这个库。

zbarsdk在pod上是有托管的,我们可以用cocoapods自己导入;

pod search zbarsdk

修改podfile,加入pod 'ZBarSDK', '~> 1.3.1'

pod install

对于不熟悉cocoapods的人,可以去下载别人编译好的libzbar.a文件和它的头文件。

使用方法如下:

导入相关frameworks:“AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.tbd(对于pod导入的,略去这步,pod自己会配置好)

把zbarsdk导入工程。

#import "ZBarSDK.h"
//这里提醒一句,不要忘记设置委托
//委托是这个<ZBarReaderDelegate>
- (void)viewDidLoad
{
    [superviewDidLoad];    
   //添加一个button,方便我们调整界面
    UIButton *btn = [[UIButtonalloc] initWithFrame:CGRectMake(30,70, 50,35)];
    btn.backgroundColor = [UIColorlightGrayColor];
    [btn setTitle:@"点击我"forState:UIControlStateNormal];
    [btn addTarget:selfaction:@selector(presentZbarView)forControlEvents:UIControlEventTouchUpInside];
    [self .viewaddSubview:btn];
}
//button的点击方法
//这里面我们初始化zbarview,并跳转界面
-(void)presentZbarView
{
    ZBarReaderViewController *reader = [[ZBarReaderViewControlleralloc] init];
    reader.readerDelegate =self;    
    //隐藏底部控制按钮
    reader.showsZBarControls =YES;
    //设置自己定义的界面
    //reader.cameraOverlayView = someView;(这个视图可以自己定义,当然你也可以通过[reader.view addSubview:someView]的方式添加蒙版视图,这样可以做出自己想要的视图效果)
    //设置识别范围(这里的4个参数都是视图比例~~不要搞错奥(距离左边的比例,距离上边的比例,识别宽度的比例,识别高度的比例))
    //reader.scanCrop =CGRectMake(0,0, 1,1);
    //设置识别的参数
    ZBarImageScanner *scanner = reader.scanner;
    [scanner setSymbology:ZBAR_I25    //这个参数和to:后面的参数配合确定了识别的编码范围,根据需求调整,可以提高识别速度。
                   config:ZBAR_CFG_ENABLE
                       to:0];
    [selfpresentViewController:reader animated:YEScompletion:nil];
}
//下面是委托方法
- (void) imagePickerController: (UIImagePickerController*) reader  didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    id<NSFastEnumeration> results =[infoobjectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol =nil;
    for(symbolin results)
        break;
    NSLog(@"%@",symbol.data);//打印识别的数据
    [reader dismissModalViewControllerAnimated:YES];
}

到这里结束了,最简单的识别实现,提高识别效率可以设置合适的识别区域,并设置合适的编码识别范围。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值