二维码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-25 16:28:32

二维码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二维码扫描,无法连续点击扫描 大概第三次的时候,进入摄像头的速度特别的慢..如何解决? 附上代码: CameraViewController *camera=[CameraViewController new] ; [self presentViewController:camera animated:YES completion:nil]; [camera release]; camera 这部分是用ZBarReaderView自定义的界面... 解决方案 ZBar 二维码扫

ios ZBar 二维码扫描。。。。

问题描述 ios ZBar 二维码扫描.... ld: warning: directory not found for option '-LZBarSDK' ld: '/Users/**/Documents/**/**/ios7 Scan QRCode/ZBarSDK-for-iOS-master/libzbar.a(ZBarReaderController.o)' does not contain bitcode. You must rebuild it with bitcode enabl

z ar 二维码-ios开发中zBar怎样直接对手机页面进行扫描识别二维码?

问题描述 ios开发中zBar怎样直接对手机页面进行扫描识别二维码? ios开发中怎样用zBar直接对手机页面进行扫描识别二维码而不通过调用摄像头获取图片扫描的方式? 解决方案 不可能做到,因为调用系统相机必须通过用户的许可获得权限.其实iOS 7.0以后的扫码完全可以胜任你需求的~

二维码-android Camera2(CameraManager) 如何调用zbar扫描?

问题描述 android Camera2(CameraManager) 如何调用zbar扫描? 原因:在**nexus5x**测试二维码扫描时,发现**预览画面是上下颠倒**的,用的是旧的camera API,改成Camera2(CameraManager)后,预览画面是正常了,但是不知道如何调用zbar了. 且,在 旧Camera中,尝试调整预览画面角度无效. 解决方案 我现在也遇到同样的问题,楼主怎么解决的

Zbar 二维码 中文处理

问题描述 用Zbar摄像头读取二维码信息得到的中文内容乱码怎么处理呢困扰了很久谢谢各位大大 解决方案 解决方案二:zbardonotsupportgbkencoding,toresolvethisproblem,ushouldfixthesourcecodeyourself.解决方案三:学习了解决方案四:该回复于2011-12-26 12:39:29被版主删除

二维码扫描工具和开发包 ZBar

问题描述 ZBar 是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图片扫描,支持多平台包括 iPhone 手机.同时 ZBar 提供了二维码扫描的 API 开发包.KJFrameForAndroid.part1.rar**ZBar** 目前支持扫描,除了 Windows 平台外,还支持 Linux 及 iPhone 平台.可扫描以下类型,常见的都有.EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR

iOS - QRCode 二维码

1.QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing.iOS7 之后可以利用系统原生 API 生成二维码, iOS8 之后可以生成条形码, 系统默认生成的颜色是黑色. 1.ZBar 在扫描的灵敏度上,和内存的使用上相对于 ZXing 上都是较优的,但是对于 "圆角二维码" 的扫描确很困难. 2.ZXing 是 Google Code 上的一个开源的条形码扫描库,是用 java 设计的,连 Google Glas

ios-IOS二维码扫描。。。。。。。。。。

问题描述 IOS二维码扫描.......... 希望有大神能给我分享一份完整的IOS二维码扫描DEMO,功能需求(带有打开手机相册,以及在手机中选择二维码图片识别功能,以及打开闪光灯效果,再加外部二维码图片扫描识别),求好心人啊 ,一定要帮我 解决方案 ? ? 现在很多项目中可能会用到二维码扫描.工作的时候.开发群里的朋友会问一下ios二维码扫描问题.比如编译报错.缺少系统库,等等.iOS目前扫描二维码码主要用Zxing,ZBar或者系统自带的(ios7).在系统之前的没有集成二维码的时候.主要