iOS中的高精度图片采集和使用注意点和关键步骤-阿里云开发者社区

开发者社区> 人工智能> 正文
登录阅读全文

iOS中的高精度图片采集和使用注意点和关键步骤

简介: iOS中的高精度图片采集和使用注意点和关键步骤 通常的自定义图片采集方案都是基于AVCaptureSession;AVCaptureSession采集出来的源数据的精度是可以通过一系列的配置来控制的: AVCaptureSessionPresetPh...

iOS中的高精度图片采集和使用注意点和关键步骤

通常的自定义图片采集方案都是基于AVCaptureSession;AVCaptureSession采集出来的源数据的精度是可以通过一系列的配置来控制的:
AVCaptureSessionPresetPhoto  
AVCaptureSessionPresetHigh
AVCaptureSessionPresetMedium
AVCaptureSessionPresetLow

精度从高到低;以iphone6为例,可以输出的最高精度的图片分辨率为:2448*3264(AVCaptureSessionPresetPhoto).

注意点

  1. 输出在配置为AVVideoCodecJPEG后会自动启用硬件压缩,在这个过程中图像的精度应该没有什么损失。

  2. 用户在保存图片前可以根据需要在UIImageJPEGRepresentation里传递不同的参数来生成不同大小的文件(有损压缩,压缩比率不同)。

我们的项目中遇到的问题是:在一个列表中有多个图像选择的控件,而控件中的图片来源于拍摄;当我们配置的输出为最高精度的图片时(客户需求,拍摄正式的协议文档等),分辨率是很高的。这里有一个致命的失误:控件中的缩略图直接加载文件原图,在这个过程中生成UIImage占用的内存是非常惊人的;而同时在一个列表中加载几十张高清图片时,很容易就达到了系统所允许的最高阈值,所以被系统kill

定位过程和吐槽

让笔者感到蛋疼的是,该问题没有生成任何的崩溃日志;而相应的viewcontroller里面也没有收到didreceivememorywarning的通知;使用instruments分析的时候能看出一些信息,虽然没有内存泄漏,但allocations一直在增加。我的印象中以前这类问题是有信息的,不知道是系统原因还是什么。
笔者调试该问题的环境是 iphone6 10.2.1系统,xcode 8.2。

参考资料

New AV Foundation Camera Features for the iPhone 6 and iPhone 6 Plus
objc.io-capturing-video

欢迎大家就此问题和我讨论,感谢! openglnewbee@163.com

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章
最新文章
相关文章