如何使用 NSFileManager 将 UIImage 保存到文件中?

Posted

技术标签:

【中文标题】如何使用 NSFileManager 将 UIImage 保存到文件中?【英文标题】:How to save UIImage to file with NSFileManager? 【发布时间】:2012-04-10 18:16:20 【问题描述】:

谢谢,

【问题讨论】:

【参考方案1】:

我们开始吧。

这会将UIImage 存储到您的ios 应用程序的文档目录中。 你不需要NSFileManager

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

UIImage * imageToSave = [UIImage imageNamed:@"Icon.png"];
NSData * binaryImageData = UIImagePNGRepresentation(imageToSave);

[binaryImageData writeToFile:[basePath stringByAppendingPathComponent:@"myfile.png"] atomically:YES];

编辑: 如果您从 iOS 相机存储图像,您可能会查看如何将图像旋转到正确的方向。 Look here in that case.

【讨论】:

谢谢,但是当我加载图像时,它显示的方向错误。 @JonasSchnelli ...这就是我建议使用 NSCoding 的原因。 @Matisse VerDuyn:好的。一加。但是通过“手”转动它并不难。 :) 我如何检索文件? @user1234096 UIImagePNGRepresentation() 剥离imageOrientation【参考方案2】:

要将其保存为文件,您需要将其放在 plist 中,或者创建图像的 png/jpg 表示。您可以使用 NSCoding 更轻松地保存 UIImage 数据。

有关更多信息,请参阅本教程:http://www.raywenderlich.com/1914/how-to-save-your-app-data-with-nscoding-and-nsfilemanager

【讨论】:

嗯...为什么要使用 NSCoding?好的:也许当您尝试在其中存储带有 UIImages 的复杂对象结构时。编码过程也会消耗 CPU 滴答声。

以上是关于如何使用 NSFileManager 将 UIImage 保存到文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NSFileManager 删除目录及其内容

如何正确地将文本文件传递给 NSFileManager

如何使用 NSFileManager 复制 UNIX 可执行文件?

如何通过 NSFileManager 将目录A下所有文件拷贝到 目录B

我们如何关闭 NSFileManager?

我如何保存在 NSFileManager 中?