iOS--AVFoundation原生二维码与一维码扫描
概述
而苹果原生的AVFoundation 扫描灵敏性和内存上最优,不过不兼容iOS6及之前的版本。
支持一维码扫描
一开始可以扫描二维码,但不支持一维码。
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 7原生二维码扫描中文gbk编码乱码的解决
有的二维码生成的含有中文的数据编码是GBK编码,如百度二维码生成器,使用系统原生二维码扫描就会出现乱码,于是开始网上查阅,该试的方法都尝试过了,终于功夫不负有心人,问题得到了解决,先上代码 NSStr ...
- iOS系统原生二维码条形码扫描
本文讲述如何用系统自带的东东实现二维码扫描的功能:点击当前页面的某个按钮,创建扫描VIEW.细心的小伙伴可以发现 title被改变了,返回按钮被隐藏了.这个代码自己写就行了,与本文关系不大...绿色的 ...
- iOS原生二维码扫码实现(含蒙版和扫码动画)
#一.iOS实现原生扫码的意义 二维码扫码功能对于现在的iOS App开发来说是非常重要的. 通常为了节省开发时间,很多开发者会采用ZXing和ZBar等第三方SDK进行开发. 这样的好处是快速便捷, ...
- iOS原生二维码扫描(一)
首先搭建一个最初步的能识别出二维码信息的最基本框架: @interface ScanCodeViewController ()<AVCaptureMetadataOutputObjectsDel ...
- iOS上二维码和一维码识别系列一
这段时间在做iOS上二维码和一维码的识别 其间遇到问题无数, 特此总结下来, 希望能给后来的同学供参考 在iOS上, 做二维码识别, 首先在网上查找资料, 查找到ZBar和ZXing这两个开源的识别程 ...
- iOS 原生二维码扫描和生成
代码地址如下: http://www.demodashi.com/demo/12551.html 一.效果预览: 功能描述:WSLNativeScanTool是在利用原生API的条件下封装的二维码扫描 ...
- ios使用AVFoundation读取二维码的方法
二维码(Quick Response Code,简称QR Code)是由水平和垂直两个方向上的线条设计而成的一种二维条形码(barcode).可以编码网址.电话号码.文本等内容,能够存储大量的数据信息 ...
- 苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案
苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 参考文章: (1)苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 (2)https://www.cnblogs.com/CoderEYL ...
- 使用zxing包生成和扫描二维码和一维码
在开发之前要先下载zxing包对其简化,新建一个android工程,把zxing包中的android和android-code中的文件复制到相应的文件夹里面 其中的libs文件夹里需要zxing包中的 ...
最新文章
- Type Ⅰ error(false positive) Type Ⅱ error(false negative)
- 如何选择就业方向(80后的个人经验,转载)
- std::cout char + int
- 平面上有两个圆相交,求两个圆相交部分的面积
- 删除远程桌面登陆痕迹
- Spring Data JPA 从入门到精通~EntityManager介绍
- 南京大学获赠1.2亿!
- input readonly 光标显示问题
- 冯偌依曼计算机的基本原理是,03级计算机专《计算机组成原理》试卷A.doc
- React入门基础+练习(二)
- 114. PHP command line getopt
- JZOJ5946. 【NOIP2018模拟11.02】时空幻境(braid)
- 实验:进程调度算法(C语言)
- mac已安装flash控件_如何在Mac上安装和更新Flash
- JavaScript打飞机小游戏
- java实现上传zip/rar压缩文件,自动解压
- 如何做一个简单的XX(学生/图书馆)管理系统(二)
- 云桌面系统功能参数(备忘)
- 震惊!某程序员吐槽零基础自学编程很难,真的是这样吗?
- 最新青龙面板拉库JS
热门文章
- Data Whale第20期组队学习 Pandas学习—时序数据
- Python 工匠精神
- NC 查询聚合 AggVO
- 写一个函数int digit( int n , int k ),它返回数n的从右向左的第k个十进数字值。例如,函数调用digit(1234,2)将返回值3。
- [2.5]-AutoSAR零基础学习-AutoSAR解决方案
- Python Hangman猜字游戏
- Centos服务器被挂马的一次抓马经历
- CSS Sprites新手教程
- java要学mysql 吗_做JAVA开发需要把数据库学习到何种程度
- 自然语言处理与机械设计制造及自动化