iOS 中二维码扫描(zxingObjc和原生)
对于网上的第三方 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和原生)相关推荐
- iOS 中二维码扫描
随着微信的大量推广,越来越多的人会在生活中用到二维码这一个方便大家的功能. 因此,很多的app中也逐渐的都加入了二维码这个元素,今天先给大家介绍一下iOS7后系统自带自己可以手动设计的二维码扫描. Q ...
- iOS二维码扫描/识别
一直以为二维码功能比较简单, 从来没有放在心上过, 由于公司项目需要这个功能, 也算是第一次真正去做二维码的东西. 从网上看别人的博客很多都是写的比较碎片, 没有一个能做的比较完整的, 今天 ...
- iOS - 二维码扫描和应用跳转
序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...
- IOS二维码扫描功能的实现
之前很多二维码扫描都是基于zxing做的,但是zxing用起来真的很麻烦,又一直不更新.随着iOS6退出历史舞台,终于可以使用iOS7以后,用系统的AVFoundation做的二维码扫描器了. 初始化 ...
- ios二维码扫描插件,适配当前主流扫描软件,自定义扫描界面。
二维码介绍: 二维码(QR(Quick Response)code),又称二维条码,最早起源于日本. 它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息 ...
- iOS 二维码扫描(zxing)的使用教程
ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, Ob ...
- iOS 二维码扫描和成像,成像带小图标 自定义色值
工具下载:http://download.csdn.net/detail/wsk_123_123/7177635 代码: // // YYViewController.h // Dm // // Cr ...
- iOS AV Foundation 二维码扫描 02 扫码
AVFoundation支持以下一维和二维码的扫描: QR code Aztec EAN13 EAN8 UPC-E PDF417 Code 93 Code 39 Code 39 mode 41 QR ...
- iOS 二维码生成和扫描
一.二维码生成 //创建二维码视图 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, ...
最新文章
- Task04:青少年软件编程(Scratch)等级考试模拟卷(二级)
- 前景检测算法_4(opencv自带GMM)
- Spring源码编译及过程中的一些问题总结
- XCode 4.3 不使用新特性 适用低版本的的项目 不是初学者就可以跳过了(转)
- 一个30岁男人转型码农的平凡之路
- SQL server判断字符串是否包含某个字符串
- java泛型程序设计——调用遗留代码
- 使用LocalTestServer对HTTP调用进行单元测试
- [BZOJ4537][Hnoi2016]最小公倍数 奇怪的分块+可撤销并查集
- 第十五期:真相了,中台到底“出路”还是“末路”?
- 笨方法学python(本文为阅读时从此书摘录的笔记) 第五天
- html5 页面加载缓慢,html5体验优化页面加载的14条建议
- 制作不同方向的三角形(border属性)
- 【转】Oracle 系统权限详细列表
- 1004. 成绩排名 (20)-PAT乙级真题
- c语言五子棋光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
- 11.11 开课二个月零七天(ajax和bootstrp做弹窗)
- PB的特点及Powerscript的语言基础
- html中字号的标签是什么,htmlfont标签是什么?font标签的属性的详细介绍
- 互联网和人工智能之间,主要是什么关系?