二维码ZBar之ZBarReaderView

参考:http://www.chinatarena.com/Html/iospeixun/201301/3985.html   http://blog.csdn.net/chenyong05314/article/details/8844549

当开发IOS程序中需要用到二维码识别功能的时候,zbar这个开源库估计会被不少人选择。但是关于zbar的用法,网上的资料大部分都集中在ZBarReaderViewController这个类的使用上。达内IOS培训老师在使用中,发现ZBarReaderViewController这个类使用很不灵活,比如,如果需要对界面做一些自定义的定制时会变得很麻烦。在zbar的头文件中,我发现了ZBarReaderView这个类,直觉告诉我这个类的使用应该是比较灵活。google之后发现针对这个类的使用说明比较少,几乎没有,只能自己动手了,在下载了zbar的源码稍作研究后,终于搞定了ZBarReaderView的用法。
  用法
  --------------------------------------------------------------------------------
  ZBarReaderView是UIView的子类,所以我们可以将其当做一个view来设置大小并放置到我们自己界面的任何地方。初始化ZBarReaderView的代码如下:
  ZBarReaderView *readview = [ZBarReaderView new]; // 初始化 readview.frame = CGRectMake(0, 0, 320, 460); // 改变frame readview.readerDelegate = self; // 设置delegate readview.allowsPinchZoom = NO; // 不使用Pinch手势变焦 [self.view addSubview:readview]; 其中第四行的默认值是YES。使用ZBarReaderView的类要实现 ZBarReaderViewDelegate代理。
  添加上述代码后,只是将ZBarReaderView添加到了我们的控制器视图中,摄像头并没有启动,readview也不会显示视频流。ZBarReaderView中有两个方法可以很方便的开启和关闭摄像头。
  [readview start]; // 开始扫描 [readview stop]; // 停止扫描 你可以在需要的时候调用这两个方法来控制摄像头的开启和关闭。这样,如果摄像头在开启状态并且扫描到二维码或者条形码以后,ZBarReaderViewDelegate的以下代理函数就会被调用。并可以在其中做一些处理。
  - (void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image{ // 得到扫描的条码内容 const zbar_symbol_t *symbol = zbar_symbol_set_first_symbol(symbols.zbarSymbolSet); NSString *symbolStr = [NSString stringWithUTF8String: zbar_symbol_get_data(symbol)]; if (zbar_symbol_get_type(symbol) == ZBAR_QRCODE) { // 是否QR二维码 } } 你可能已经注意到ZBarReaderViewDelegate代理函数中的fromImage:(UIImage *)image这个参数了。没错,ZBarReaderView可以调用摄像头来完成拍照功能。你需要按以下方法调用。
  [readview.captureReader captureFrame]; 上述代码执行后,ZBarReaderViewDelegate的代理函数同样会被调用,其中的fromImage:(UIImage *)image就是方法调用时摄像头捕获的图像。

时间: 2024-10-07 01:58:57

二维码ZBar之ZBarReaderView的相关文章

实现扫描 一/二维码 -- ZBar开源SDK

一.下载ZBarSDK, 加入到工程中. 二.配置TARGETS和PROJECT 三.设置Link Binary With Libraries 四.  .m文件 #import "MQMainViewController.h" #import "ZBarSDK.h" @interface MQMainViewController () @end @implementation MQMainViewController - (void)viewDidLoad { [s

在iOS中使用ZBar扫描二维码

最近在做的项目中需要用到二维码扫描功能,之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用. ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式是使用ZBar提供的可以嵌在其他视图中的ZBarReaderView,实际项目

在iOS中使用ZBar扫描二维码和条形码

最近做了个外包项目,里面用到了二维码扫描和微信支付!之前比较熟悉的是ZXing,但是在Xcode7.1里面发现竟然莫名的不支持,木有办法,从网上查了一下还有一种支持二维码扫描的东西,没错就是接下来我要说的东东,二维码扫描的利器 ZBarSDK.闲言少絮叨,言归正传! 1.下载 ZBarSDK 官网 https://github.com/bmorton/ZBarSDK 2.导入如下框架 3.在AppDelegetem文件中#import "ZBarSDK.h" 并且 在 - (BOOL)

iOS中使用ZBar扫描二维码自定义扫描界面

之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用. ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式是使用ZBar提供的可以嵌在其他视图中的ZBarReaderView,实际项目中我们更可能会使用第二种方式,这可以让我

ZBar之自定义二维码扫描

// // YvanQRCodeViewController.m // zBar // // Created by City--Online on 15/6/8. // Copyright (c) 2015年 CYW. All rights reserved. // #import "YvanQRCodeViewController.h" #import "ZBarSDK.h" #define SCANVIEW_EdgeTop 40.0 #define SCANVI

zBar扫描二维码时闪光灯自动打开问题

相信大家对zBar并不陌生,比较常用的扫描二维码和条形码的第三方库,在这不做过多解释. 我要说的是,有种场景我们在扫描二维码时,周围环境比较阴暗,光线不好,这个时候我们需要去开灯.这个时候的需求是我们如果能打开手机自带的闪光灯就好了. 到这一步并不难,网上也有很多关于打开手机闪光灯的代码,在这里我也贴出来一份: <span style="font-size:14px;">- (void)openLight:(UIButton *)sender { AVCaptureDevi

使用zbar进行二维码或条形码(一维码)扫描

接上篇,因为使用AVFoundation一直无法扫描我们的二维码,最后决定使用条形码.我又在AVCaptureMetadataOutput的metadataObjectTypes中加入了EAN13的条形码类型(我们生成条形码使用的类型),不幸的是,还是无法识别,但是,百度其他的EAN13类型的条形码都可以识别出来,此问题仍未解决. 最后,我决定试一下ZBar,bingo!效率挺高.下面介绍一下zbar的使用过程. 首先,使用cocopods在项目中集成zbar,然后在头文件中导入ZBarSDK,

android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Holder须要设置type,否则会黑屏(感谢网友[(α ⒎待sんа)294439435]) com.example.qu.MainActivity的第50行mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 今天发现 在com.exampl

配置zbar识别二维码(转载)

原文地址:http://blog.csdn.net/dcrmg/article/details/52108258 二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件.手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码. 下边这个简单粗暴的图标就是Zbar: Zbar