使用苹果原生API进行二维码和条形码的扫描

本文介绍了如何使用苹果的AVFoundation框架,通过原生API进行二维码和条形码的扫描。首先引入相关库和头文件,遵循AVCaptureMetadataOutputObjectsDelegate代理,然后设置扫描设备、输入输出流,并指定扫描区域。当扫描到数据时,系统会调用代理方法返回扫描结果。此外,还提到了 rectOfInterest 属性用于设定关注的扫描区域,以及如何处理相册中的图片以检测二维码。
摘要由CSDN通过智能技术生成

最近需要用到二维码的扫描,发现苹果有自己的原生的api,这里简单介绍一下.

首先需要引入AVFoundation.framework 库

在相应的viewController里边引入头文件.

#import <AVFoundation/AVFoundation.h>

//遵守代理

@interface ScanViewController ()<AVCaptureMetadataOutputObjectsDelegate>

@property (nonatomic,strong)AVCaptureSession *captureSession;//输入输出的中间桥梁

@end


接下来就是进行二维码的扫描

#pragma mark - 开始扫描

/**

 *  开始扫描

 */

- (void)beginScanning

{

    //获取摄像设备

    AVCaptureDevice *device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];

    //创建输入流

    AVCaptureDeviceInput * input = [AVCaptureDeviceInputdeviceInputWithDevice:deviceerror:nil];

    if (!input) 

    return;

    //创建输出流

    AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutputalloc]init];

    //设置代理在主线程里刷新

    [output setMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];

    //设置有效扫描区域

    output.rectOfInterest = CGRectMake(0,0.5,0,0);

    //初始化链接对象

    self.session = [[AVCaptureSessionalloc]init];

    //高质量采集率

    [self.sessionsetSessionPreset:AVCaptureSessionPresetHigh];

    

    [self.sessionaddInput:input];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值