关于ZBarSDK的使用

来源:互联网 发布:淘宝退货要写什么 编辑:程序博客网 时间:2024/06/07 14:59

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

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

可是这个库怎么获取呢?

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

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

由于zbarsdk很久没有维护了,所以支持arm64的.a文件可能要找一找,这里我贴出一个地址,大家可以自己下载:点击下载Zbar.a

这是我的libzbar.a的csdn下载地址,免积分的,支持arm64、armv7、armv7s、i386等,所以有点大,可以模拟器,可以真机。

注意:这里只是.a文件,所以头文件还是要从别的地方下载的~~~或者你从其他地方下载一个zbarsdk,然后下载这里的.a替换掉原来的libzbar.a。

使用方法如下:

首先:

导入相关frameworks:“AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.tbd

把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 0
原创粉丝点击