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

目录
相关文章
|
6月前
|
移动开发 安全 数据安全/隐私保护
iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤
iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤
78 1
|
6月前
|
JSON JavaScript 安全
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
iOS应用程序数据保护:如何保护iOS应用程序中的图片、资源和敏感数据
59 1
|
6月前
|
缓存 iOS开发
IOS网络编程:使用 URLSession 实现网络请求的步骤是什么?
IOS网络编程:使用 URLSession 实现网络请求的步骤是什么?
110 1
|
6月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
iOS 应用上架的步骤和工具简介
|
2月前
|
iOS开发 开发者
iOS微信分享配置universal links步骤
iOS微信分享配置universal links步骤
1337 58
|
6月前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
6月前
|
存储 缓存 算法
实现iOS平台的高效图片缓存策略
【4月更文挑战第22天】在移动应用开发中,图片资源的处理是影响用户体验的重要因素之一。特别是对于图像资源密集型的iOS应用,如何有效地缓存图片以减少内存占用和提升加载速度,是开发者们面临的关键挑战。本文将探讨一种针对iOS平台的图片缓存策略,该策略通过结合内存缓存与磁盘缓存的机制,并采用先进的图片解码和异步加载技术,旨在实现快速加载的同时,保持应用的内存效率。
|
6月前
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
3月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
78 0
|
6月前
|
存储 Web App开发 Android开发
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
644 1
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片