对于网上的第三方 ZXingObjC,自我感觉是对原生的AVFoundation中关于二维码部分的一个封装,大致看看ZXingObjC的内部实现其事和原生的实现相似的,里面都用到了AVFoundation框架中的几个类:AVCaptureSession,AVCaptureDevice,AVCaptureInput,AVCaptureOutput.刚看到这几个类以及类内部的属性和变量的时候,完全不知道是什么,慢慢的才有了了解:

官网对这几个类的解释是:

  • An instance of AVCaptureDevice to represent the input device, such as a camera or microphone
  • An instance of a concrete subclass of AVCaptureInput to configure the ports from the input device
  • An instance of a concrete subclass of AVCaptureOutput to manage the output to a movie file or still image
  • An instance of AVCaptureSession to coordinate the data flow from the input to the output

从官网可以了解到:

1. AVCaptureDevice 即为输入数据的设备,比如相机,麦克风等;

2. AVCaptureInput (抽象类 下面会有多个子类如AVDeviceCaptureInput)用于配置输入设备的端口(这个端口用AVCaptureInputPort表示,这个端口代表了从输入设备输入的数据流的类型,数据流的类型有多种:

NSString *const AVMediaTypeVideo;

NSString *const AVMediaTypeAudio;

NSString *const AVMediaTypeText;

NSString *const AVMediaTypeClosedCaption;

NSString *const AVMediaTypeSubtitle;

NSString *const AVMediaTypeTimecode;

NSString *const AVMediaTypeTimedMetadata;

NSString *const AVMediaTypeMetadata;

NSString *const AVMediaTypeMuxed;

比如AVDeviceCaptureInput就有一个用于表示 “视频数据流:AVMediaTypeVideo”的端口);

3.AVCaptureOutput 表示捕获数据输出管理 用于表示将数据输出的数据类型为视频文件或者图片;

4.AVCaptureSession 用于协调输入数据流一直到输出数据的处理过程。

下面的官网的一张图片展示了这几个类之间的关系

在将AVCaptureInput和AVCaptureOutput添加到session中的时候会创建一个AVCaptureConnection,用于去在输入和输出之间建立连接

下面说一下关于AVCaptureDevice的几个属性

Focus Mode:聚焦模式

  • AVCaptureFocusModeLocked: 固定的焦点位置。
  • AVCaptureFocusModeAutoFocus: 自动聚焦一次就返回到焦点锁定的状态 锁定到你聚焦的那个焦点。
  • AVCaptureFocusModeContinuousAutoFocus:在需要的时候持续自动聚焦。

Exposure Mode:曝光模式

  • AVCaptureExposureModeContinuousAutoExposure: 按需要自动调整曝光度。
  • AVCaptureExposureModeLocked: 固定的曝光度。

Flash Mode:闪光灯模式

  • AVCaptureFlashModeOff:总是关闭闪光灯
  • AVCaptureFlashModeOn: 总是打开闪光灯
  • AVCaptureFlashModeAuto: 根据灯光条件决定是否开启闪光灯.

Torch Mode:手电筒模式

  • AVCaptureTorchModeOff: 总是关闭手电筒
  • AVCaptureTorchModeOn: 总是打开手电筒
  • AVCaptureTorchModeAuto: 按照需要自动决定是否开启手电筒

White Balance:白平衡模式

  • AVCaptureWhiteBalanceModeLocked: 固定的白平衡值
  • AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance: 相机按需自动调整白平衡值

AVCaptureDevicePosition:设备位置

AVCaptureDevicePositionUnspecified = 0,未指定位置

AVCaptureDevicePositionBack  = 1, 后置的摄像头

AVCaptureDevicePositionFront = 2 前置摄像头

转载于:https://www.cnblogs.com/fengchuihualuo/p/4936782.html

iOS 中二维码扫描(zxingObjc和原生)相关推荐

  1. iOS 中二维码扫描

    随着微信的大量推广,越来越多的人会在生活中用到二维码这一个方便大家的功能. 因此,很多的app中也逐渐的都加入了二维码这个元素,今天先给大家介绍一下iOS7后系统自带自己可以手动设计的二维码扫描. Q ...

  2. iOS二维码扫描/识别

    一直以为二维码功能比较简单,  从来没有放在心上过,  由于公司项目需要这个功能,  也算是第一次真正去做二维码的东西.  从网上看别人的博客很多都是写的比较碎片, 没有一个能做的比较完整的,  今天 ...

  3. iOS - 二维码扫描和应用跳转

    序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...

  4. IOS二维码扫描功能的实现

    之前很多二维码扫描都是基于zxing做的,但是zxing用起来真的很麻烦,又一直不更新.随着iOS6退出历史舞台,终于可以使用iOS7以后,用系统的AVFoundation做的二维码扫描器了. 初始化 ...

  5. ios二维码扫描插件,适配当前主流扫描软件,自定义扫描界面。

            二维码介绍: 二维码(QR(Quick Response)code),又称二维条码,最早起源于日本. 它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息 ...

  6. iOS 二维码扫描(zxing)的使用教程

    ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, Ob ...

  7. iOS 二维码扫描和成像,成像带小图标 自定义色值

    工具下载:http://download.csdn.net/detail/wsk_123_123/7177635 代码: // // YYViewController.h // Dm // // Cr ...

  8. iOS AV Foundation 二维码扫描 02 扫码

    AVFoundation支持以下一维和二维码的扫描: QR code Aztec EAN13 EAN8 UPC-E PDF417 Code 93 Code 39 Code 39 mode 41 QR ...

  9. iOS 二维码生成和扫描

    一.二维码生成 //创建二维码视图     UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, ...

最新文章

  1. Task04:青少年软件编程(Scratch)等级考试模拟卷(二级)
  2. 前景检测算法_4(opencv自带GMM)
  3. Spring源码编译及过程中的一些问题总结
  4. XCode 4.3 不使用新特性 适用低版本的的项目 不是初学者就可以跳过了(转)
  5. 一个30岁男人转型码农的平凡之路
  6. SQL server判断字符串是否包含某个字符串
  7. java泛型程序设计——调用遗留代码
  8. 使用LocalTestServer对HTTP调用进行单元测试
  9. [BZOJ4537][Hnoi2016]最小公倍数 奇怪的分块+可撤销并查集
  10. 第十五期:真相了,中台到底“出路”还是“末路”?
  11. 笨方法学python(本文为阅读时从此书摘录的笔记) 第五天
  12. html5 页面加载缓慢,html5体验优化页面加载的14条建议
  13. 制作不同方向的三角形(border属性)
  14. 【转】Oracle 系统权限详细列表
  15. 1004. 成绩排名 (20)-PAT乙级真题
  16. c语言五子棋光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  17. 11.11 开课二个月零七天(ajax和bootstrp做弹窗)
  18. PB的特点及Powerscript的语言基础
  19. html中字号的标签是什么,htmlfont标签是什么?font标签的属性的详细介绍
  20. 互联网和人工智能之间,主要是什么关系?

热门文章

  1. PAT1004. 成绩排名
  2. C++ Qt学习笔记 (1) 简易计算器设计
  3. 细说linux视频,Shell变量-细说linux配套视频
  4. mysql restart fail_mysql突然挂掉,重启失败,求助
  5. android webview_在 Flutter 中使用 WebView
  6. micropython是什么意思_MicroPython到底是啥-百度经验
  7. 全程回顾|罗永浩直播带货首秀
  8. 图神经网络(GNN)综述
  9. 12个写论文必备的神经网络可视化工具
  10. 用每日新闻预测金融市场变化