iOS--AVFoundation原生二维码与一维码扫描
来源:互联网 发布:linux rc0.d 编辑:程序博客网 时间:2024/05/23 14:31
概述
支持一维码扫描
一开始可以扫描二维码,但不支持一维码。
1). 添加metadataObjectTypes:AVMetadataObjectTypeEAN13Code,AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code,AVMetadataObjectTypeCode39Code
但是还是不支持扫描一维码。
然后看了关于iOS原生条形码扫描,你需要注意的两三事 此文中提到“是在Detect Center那个点,画一个无限延伸的米字型,然后去判断每一条在线能否解析出条形码所需要的0101010序列。而iOS默认的Center是 Layer 的 Center。提示给用户的那个框,已经远离了Center。所以我们竖着扫描的时候,那条水平的扫描线是没有贯穿条形码的,所以扫不上他。于是乎要根据设备,iPhone4 iPhone5 通过AVCaptureDeviceFormat和AVCaptureSessionPreset 重新设置一下AVCaptureMetadataOutput rectOfInterest,结果问题就解决了。”
我去看了,FAQ中提到“the set of scan lines is expanded to cover a larger portion of the region of interest ("Additional")”, 在少数一些情况下扫描线会扩大到原始扫描区域之外,关于"Additional"的概念也不懂
所以我就上网找啊找 怎么使用AVCaptureDeviceFormat和AVCaptureSessionPreset去设置rectOfInterest
。。。。然后就是没有找到。
最后自己按照rectOfInterest的设置规则设置,然后可以扫描了。
19th,March,2016
1. 设置识别区域RectOfInterest
识别区域默认是照相机捕获的整张照片,可通过RectOfInterest配置识别区域提升扫描性能和速度,
Tip: CGRectMak(y, x, height, width) 值为0-1.0f,eg: 扫描区域.y/屏幕高度。 网上资料:AVCapture捕捉的图片是横着的,而手机是竖着的,所以需要旋转90度。
"iOS上内置相机应用录制的mov/mp4视频可能产生一个Rotation元数据,表示录制视频时摄像头旋转到了多少角度。其值一般为这四个:0、90、180或270。
竖屏时rotation值为90.
2. 识别小图SessionPreset属性
该属性可预设图像分辨率, 决定照片中每一帧图像质量的大小:
AVCaptureSessionPresetPhoto/High/Medium/Low
AVCaptureSessionPreset320x240/352x288/640x480/960x540/1280x720/1920x1080/3840x2160
想要识别小图则需要讲该属性设高一点,但相应的效率会比Low的低。
AVCaptureSessionPresetHight ==> iPhone5
一维码与二维码
一维码:条码的宽度储存数据,有一组规则排序的条和空以及对应的字符组成,
“条”(即使黑色的部分)光线反射率较低
“空” (即白色的部分)光线发射率较高
而这些“条”和“空”组成的数据可以转换成二进制和十进制的信息。
二维码:90年代发明了二维码,主要分为两种,一是堆叠式/行排式二维条码。另一种就是现在普遍使用的矩阵式二维码(Quick Response Code)拥有一维码的优点同时,容错性高,储存数据量大。未完待续。。。敬请期待。。。如有想法。。。欢迎交流
参考资料:
18th,March,2016
(题外话: 其实现在是拒绝写博客的,因为不想写,但是还是写吧)iOS二维码扫描,你需要注意的两件事
iOS:原生二维码扫描 // 强资料
二维码的生成细节和原理
二维码的生成细节和原理
- iOS--AVFoundation原生二维码与一维码扫描
- iOS二维码生成与扫描(zbar和原生AVFoundation)
- iOS 原生AVFoundation 限制区域二维码扫描
- iOS 开发AVFoundation系统原生二维码扫描实现
- 【iOS】AVFoundation架构下的原生二维码和条形码扫描
- 使用AVFoundation实现iOS原生二维码、条形码扫描(可限制扫描范围、可手动调节焦距)
- iOS原生二维码扫描
- iOS 原生二维码扫描
- iOS:原生二维码扫描
- iOS原生二维码扫描
- iOS原生扫描二维码
- ios原生二维码扫描
- iOS:原生二维码扫描
- ios原生二维码扫描
- iOS 原生二维码扫描
- iOS 原生二维码扫描
- iOS 原生扫描二维码
- iOS原生二维码扫描
- C++第2次实验—模拟ATM
- ThinkPHP 初步认识
- Object-C非正式协议与正式协议的区别
- Problem E
- linux添加开机自启动脚本示例详解
- iOS--AVFoundation原生二维码与一维码扫描
- ABB机器人学习笔记1-软件使用
- 11. 接口和抽象类区别
- jad 反编译的使用方法
- 生产者与消费者问题
- 获取字符串或数组元素
- Linux Shell 编程语法
- [leetcode 244] Shortest Word Distance II------------字典中两个字符串的最短距离
- 2016蓝桥杯假期任务之《打印十字图》