iOS:二维码的扫描

iOS 中二维码的扫描借用#import <AVFoundation/AVFoundation.h> 实现,会用到<AVCaptureMetadataOutputObjectsDelegate>这个代理,并会调用相机进行扫描,

具体实现步骤如下:

// 1.创建捕捉会话
    AVCaptureSession *session = [[AVCaptureSession alloc] init];
    
    // 2.添加一个输入源
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
    [session addInput:input];
    self.session = session;
    
    // 3.添加一个输出源
    AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
    [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
    [session addOutput:output];
    [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
    
    // 4.添加一个预览图层
    AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
    layer.frame = self.view.bounds;
    [self.view.layer addSublayer:layer];
    self.layer = layer;
    
    // 5.开启扫描
    [session startRunning];

#pragma mark - 实现输出源的代理方法
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
    if (metadataObjects.count > 0) {
        AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject];
        NSLog(@"%@", object.stringValue);
        
        [self.session stopRunning];
        [self.layer removeFromSuperlayer];
    } else {
        NSLog(@"获取数据失败");
    }
}

时间: 2024-08-07 11:52:48

iOS:二维码的扫描的相关文章

Ios二维码扫描(系统自带的二维码扫描)

Ios二维码扫描 这里给大家介绍的时如何使用系统自带的二维码扫描方法和一些简单的动画! 操作步骤: 1).首先你需要搭建UI界面如图:下图我用了俩个imageview和一个label 2).你需要在你当前的控制器中导入 #import <AVFoundation/AVFoundation.h> <AVCaptureMetadataOutputObjectsDelegate>代理 3).在@interface中定义 @property (nonatomic,strong)AVCapt

IOS二维码扫描IOS7系统实现

扫描相关类 二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话.我们需要用到一下几个类: AVCaptureSession 会话对象.此类作为硬件设备输入输出信息的桥梁,承担实时获取设备数据的责任 AVCaptureDeviceInput 设备输入类.这个类用来表示输入数据的硬件设备,配置抽象设备的port AVCaptureMetadataOutput 输出类.这个支持二维码.条形码等图像数据的识别 AVCaptureVideoPrevie

iOS二维码扫描,你需要注意的两件事

在 iOS7 以前,在iOS中实现二维码和条形码扫描,我们所知的有,两大开源组件ZBar与ZXing. 这两大组件我们都有用过,这里总结下各自的缺点: ZBar ZBar在扫描的灵敏度上,和内存的使用上相对于ZXing上都是较优的,但是对于 “圆角二维码” 的扫描确很困难.如: ZXing ZXing 是 Google Code上的一个开源的条形码扫描库,是用java设计的,连Google Glass 都在使用的.但有人为了追求更高效率以及可移植性,出现了c++ port. Github上的Ob

iOS二维码,条形码扫描问题

1.公司做一个二维码条形码扫描的项目,遇到二维码扫描很好识别,条形码扫描有点慢 解决办法:device放大焦距(完美解决)    //获取摄像设备     AVCaptureDevice * device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];     //创建输入流     AVCaptureDeviceInput * input = [AVCaptureDeviceInputdeviceInputWith

ios开发日记13-原生二维码的扫描和生成

今天博主有一个二维码扫描和生成的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. 从iOS7开始官方集成了二维码的扫描和生成功能 此前被广泛使用的zbarsdk目前不支持64位处理器 1.扫描二维码 扫描二维码需要导入AVFoundation框架 利用摄像头识别二维码中的内容(模拟器不行) 输入(摄像头) 由会话将摄像头采集到的二维码图像转换成字符串数据 输出(数据) 由预览图层显示扫描场景 // 实例化拍摄设备 AVCaptureDevice *device = [AVCapture

Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码

 二维码/条形码生成器 二维码/条形码扫描器 一.二维码与条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有,还有分享名片功能(也是一张二维码图片,识别扫描). 下面小编将通过文章主要介绍QRCode方面技术. QRCode是被广泛应用的一种二维码,解码速度快.二维码相对于条形码来说,二维码的存储数据量更大,空间利用率高,有一定的容错性. 二维码原理介绍: 二维码是用某种特定的几何图形按一定的规律在平面上分布的黑

二维码/条码扫描

自己写了一个使用系统框架实现的二维码/条码扫描,扫描效率高.识别度高,可直接使用. 代码下载地址 https://github.com/JonnyFan/Scan.git

Java生成二维码实现扫描次数统计并转发到某个地址

需求:近几天某个项目需要用户录入个自己的网址,然后系统需要根据用户的的网址生成二维码,然后用户可以拿着它给别人扫描,访问到他录入的网址,在这个过程中.我需要知道用户的二维码被扫描的次数,也就是后面根据其可以做一些扫描排名之类的. 思路: 先生成二维码,csdn已经有前辈写了,那么我就直接拿过来用了. 将用户的id,和用户录入的网址处理之后作为http get参数封装到二维码中,然后用户扫描会自动跳转到我们系统的某个接口 在接口中根据用户id将用户查询出来,扫描次数加1后重定向到用户录入页面 代码

Android之二维码的扫描与生成

今天,来学习使用怎么实现二维码的扫一扫和二维码的生成. 要想实现二维码的扫一扫与二维码的生成,就得必须了解二维码的特征. QRcode: QRCode简介: QRCode全称Quick Response Code. 通过在一个矩形区域内使用黑白像素来进行编码. 高纠错性.高可用性.高识别性. ZXing简介: ZXing是一个开放源码的,用java实现的多种格式为1D/2D条码图形处理库,它包含了联系到其他语言的端口. ZXing可以实现使用手机的内置的摄像头完成条形码的扫描与解码. ZXing