使用AVFoundation完成二维码扫描

其中有几点需要注意的

1.应该使用异步线程来配置那几个属性,这样可以防止阻塞主线程加载UI。

2.output的rectOfInterst是感应区域,就是说,在这个区域内才有扫描效果。但是由于摄像头的关系,这个rect的x和y是反着的,width和height也是反着的,就是说,这里的x坐标对应着正常情况下的y坐标,这里的宽度对应着正常情况下的高度。

3.sessionPreset属性是用来设置扫描精度的。

4.metaObjectTypes属性可以设置扫描的类型,有二维码和一维码(条形码)。

总结:通过以上设置,可以完成绝大多数的扫描任务,并且精度和速度都不错。但是,对1cm*1cm大小,清晰度不太高的二维码,扫描速度很慢或根本无法辨认。后来,我又从app store上面下载了很多的二维码扫描的app,微信和支付宝的扫描速度可以保证,我查查也勉强能接受。其中,微信和支付宝在扫描过程中,需要保持联网状态,我猜测是需要在后台进行图片的解析。因为联系不到微信或支付宝的开发人员,这个问题至今未解决,希望此贴的朋友,可以帮我想想办法,不胜感激。

时间: 2024-07-31 21:42:24

使用AVFoundation完成二维码扫描的相关文章

iOS使用AVFoundation实现二维码扫描

实现过程如下: Step1:需要导入:AVFoundation Framework 包含头文件: #import <AVFoundation/AVFoundation.h> Step2:设置捕获会话 设置 AVCaptureSession 和 AVCaptureVideoPreviewLayer 成员 1 2 3 4 5 6 7 8 9 10 #import <AVFoundation/AVFoundation.h> static const char *kScanQRCodeQu

【转】 iOS使用AVFoundation实现二维码扫描

原文:http://strivingboy.github.io/blog/2014/11/08/scan-qrcode/ 关于二维码扫描有不少优秀第三方库如: ZBar SDK 里面有详细的文档,相应介绍也非常多,如:http://rdcworld-iphone.blogspot.in/2013/03/how-to-use-barcode-scanner-br-and-qr-in.html ZXing google推出的开源项目,相应介绍如:http://blog.devtang.com/blo

Swift:使用系统AVFoundation实现二维码扫描和生成

系统提供的AVCaptureSession仅仅适用于iOS7.0以上的系统.之前的请用Zbar来替代 下载地址:http://download.csdn.net/detail/huobanbengkui/8881097 配置project: 引入: import Foundation import AVFoundation 接受AVCaptureMetadataOutputObjectsDelegate(如: class QrcodeVC: UIViewController,AVCaptureM

iOS使用AVFoundation实现二维码扫描(ios7以上)——转载

关于二维码扫描有不少优秀第三方库: ZBar SDK 里面有详细的文档,相应介绍也非常多,如:http://rdcworld-iphone.blogspot.in/2013/03/how-to-use-barcode-scanner-br-and-qr-in.html ZXing google推出的开源项目,相应介绍如:http://blog.devtang.com/blog/2012/12/23/use-zxing-library/ 关于AVFoundation AVFoundation 是一

Swift AVFoundation 二维码扫描和生成

项目最终不须要支持iOS6了(泪崩),在二维码扫描这一块,可以全然的放弃ZXing库,改用系统的AVFoundation了,拿swift写了个Demo,效果例如以下: github地址:点这里 有关AVFoundation和Core Image(滤镜等),可以先看看objc.io第21期和第23期的有关介绍. 初始化视频捕捉 // 初始化视频捕获 private func initCapture() { // 代表抽象的硬件设备,这里传入video let captureDevice = AVC

AVFoundation二维码扫描限制区域

写这篇文章的主要原因不是展示如何使用  AVFoundation 来进行二维码扫描,更主要的是限制扫描二维码的范围.(因为默认的是全屏扫描) 项目遇到扫描二维码的功能需求,这里我放弃了使用三方库,而采用了苹果原生的扫描. 原生的好处就是扫描特别快效率特别高,但是遇到一个问题就是不知道怎么去限制扫描范围. 还是先简单说一下怎么使用来进行二维码扫描吧. 首先是要用到的几个类 @property ( strong , nonatomic ) AVCaptureDevice * device; @pro

二维码扫描

1.将ZBar的SDK导入工程 SDK下载地址:https://i.cnblogs.com/Files.aspx 或者去官网下载:https://github.com/bmorton/ZBarSDK 2.设置依赖库 需要添加AVFoundation  CoreMedia  CoreVideo QuartzCore libiconv 3.修改工程配置 1)      Framework Search Path 2)      如果使用xcode7.0以上 ,还需设置: /* 4. 版本说明  1.

iOS开发-二维码扫描和应用跳转

iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦,出错也不方便调试.在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架.本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转.ps:本期的源代码会在文章结尾给出链接 扫描相关类 二维码扫描需要获取摄像头并读取

iOS 系统二维码扫描(可限制扫描区域)

使用 AVFoundation系统库来进行二维码扫描并且限制扫描二维码的范围.(因为默认的是全屏扫描) -(void)beginCode { //1.摄像头设备 AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; /* // Media types AVMediaTypeVideo AVMediaTypeAudio AVMediaTypeText AVMediaTypeC