ios - 存储 UIImage 的文件名或对象以在 Obj-C 中进行处理

标签 ios objective-c opencv uiimage

我目前正在开发一款处理多张图片的应用。我接收图像作为 UIImage 并将它们保存到手机上的临时文件夹中。之后,我创建了一个对象,该对象具有 UIImage 和一些元数据作为其属性。加载所有图像后,它们会通过 OpenCV 进行处理。我想知道如果我只保存文件路径而不是在整个过程中保留对实际 UIImage 的引用然后根据请求加载 UIImage 是否会优化整体性能。

如果有人可以描述此场景的最佳实践,那将非常有帮助。

最佳答案

在内存中保存一堆图像会占用内存。您有内存不足和崩溃的风险。

将它们保存到临时文件,构建路径数组,然后一次加载和处理一个图像将减少内存占用。

如果图像很小而且数量不多,那么当您第一次收到它们时在内存中简单地处理它们可能比将它们保存到磁盘然后重新加载它们更快。

您必须对图像的总数/大小进行一些分析,并确定最佳权衡所在。 (请记住,图像占用的内存通常比其文件大小所建议的多得多。)当您将 UIImage 加载到内存中时,每个像素需要 3 或 4 个字节(如果它们是 alpha channel ,则为 4 个字节)。

关于ios - 存储 UIImage 的文件名或对象以在 Obj-C 中进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670958/

相关文章:

ios - 决定iOS外观屏幕

iphone - 保存 ManagedObjectContext 返回 null 错误

objective-c - Xcode 4.2 codesense - 你如何缩小建议的完成列表?

android - 如何在 Android App 中集成 OpenCV Manager

OpenCV:读取视频序列

ios - RawOptionSetType 兼容 Objective-C 吗?

ios - 为什么我收到 CIFilter 的 "unrecognized selector sent to class"错误?

ios - 如何将 TableView Controller 中除选项卡栏之外的所有 View 向下移动?

objective-c - 如何在 xcode 中创建数组键和值?

c++ - OpenCV findHomography 问题