在不使用NSData的情况下将UIImages保存到文件

时间:2013-11-08 22:45:08

标签: ios objective-c uiimage nsdata

我想存储一堆在用户使用应用程序时拍摄的图像,同时确保我可以稍后以相当高的分辨率查看它们。而通过“商店”,现在我不需要将它们存储在应用程序的关闭之后。只需在应用程序处于活动状态的某个时刻之后将它们提供就是我所需要的。

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

然后我尝试缩小它们(因为我的应用程序有一个网格显示,我可以看到所有的图片,但缩小到适合3x3网格的图像),我的应用程序停止崩溃。但是当我想要在全屏幕上单独观看图片时,质量非常糟糕,因为我正在缩小缩小的照片。

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

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

请原谅我因为单行问题而写得太多了。我只是不想得到关于做我已经尝试过的事情的建议。

1 个答案:

答案 0 :(得分:1)

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