关于ZBarSDK的使用

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];
}

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


你可能感兴趣的:(二维码,条码,arm64,ZBarSDK,libzbar)