【问题标题】:Saving UIImages to files without using NSData将 UIImages 保存到文件而不使用 NSData
【发布时间】:2013-11-08 22:45:07
【问题描述】:

我想存储用户使用该应用时拍摄的一堆图像,同时确保我以后可以以相当高的分辨率查看它们。通过“存储”,现在我不需要在应用程序关闭后存储它们。我只需要在应用程序还活着的时候让它们可用。

我首先尝试简单地将 UIImages 以原始大小存储在应用程序中,但由于内存使用,应用程序会在拍摄 7 或 8 张照片后崩溃。

然后我尝试缩小它们(因为我的应用程序有一个网格显示,我可以在其中看到所有图片,但缩小到适合 3x3 图像网格),我的应用程序停止崩溃。但是当我想在全屏上单独查看图片时,质量很差,因为我放大了一张缩小的照片。

所以我想为什么不找到一种方法通过另一个对象以不会占用太多内存的方式存储原始图像。在线搜索使我决定将它们存储在一个文件中,方法是将图像转换为 NSData 然后将其写入文件。但是,当我将 NSData 加载回 UIImage 时,我通过相机拍摄的照片的方向都是横向的!经过数小时的研究(和失败)如何将其转换回正确的方向后,我决定放弃尝试修复这个方向错误。

相反,我只想知道除了使用 NSData 之外,是否还有其他方法可以存储大/高分辨率 UIImage(不占用内存)。大家有什么想法?

请原谅我不得不为一个单行问题写这么多。我只是不想就我已经尝试过的事情获得建议。

【问题讨论】:

标签: ios objective-c uiimage nsdata


【解决方案1】:

将其保存为 jpeg 而不是 PNG,这样图像将为您旋转。见https://stackoverflow.com/a/4868914/96683

【讨论】:

  • 谢谢,虽然我确实使用我在 cmets 中所述的方法解决了我的问题,但我可以想到一些边缘情况,其中我的上述方法可能会导致错误。如果我必须处理这些边缘情况,我会回到这一点并实施您刚才的建议。
  • 那些极端情况是什么?
猜你喜欢
  • 2012-07-06
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多