无法从 iPhone 文档目录位置中的已保存文件重新加载 UIImage
Posted
技术标签:
【中文标题】无法从 iPhone 文档目录位置中的已保存文件重新加载 UIImage【英文标题】:Can't Reload UIImage from Saved file in iPhone Documents Directory location 【发布时间】:2014-03-16 21:28:31 【问题描述】:我正在制作一个将文件保存到 iPhone 文档目录的应用程序,然后当重新加载视图控制器时,它将从同一位置获取并显示它。但它并没有获取它并显示它。
我正在使用以下方法保存图像:
void UIImageWriteToFile(UIImage *image, NSString *fileName)
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectoryPath = dirPaths[0];
NSString *filePath = [documentDirectoryPath stringByAppendingPathComponent:fileName];
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:filePath atomically:YES];
我正在尝试使用以下代码从 viewDidLoad 方法中调用我保存的图像:
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectoryPath = dirPaths[0];
NSString *fileName = [NSString stringWithFormat:@"/%@.png", self.fullname.text];
NSString *filePath = [documentDirectoryPath stringByAppendingString:fileName];
[self.imageView setImage:[UIImage imageNamed: filePath]];
但是,它没有显示我的图像。谁能帮助我并告诉我哪里出错了。我是 ios 开发新手。
【问题讨论】:
【参考方案1】:替换这一行:[self.imageView setImage:[UIImage imageNamed: filePath]];
有了这个:
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[self.imageView setImage:image];
【讨论】:
成功了!谢谢!但由于某种原因,它将图像逆时针加载 90 度。你知道这是为什么吗?另外,如何将其旋转回正常视图? self.imageView.image.imageOrientation【参考方案2】:您可以将 [UIImage imageNamed:]
与 Documents 文件夹中的图像一起使用,并享受底层缓存机制的好处,但文件路径略有不同。
使用以下内容:
NSString *fileName = [NSString stringWithFormat:@"../Documents/%@.png", self.fullname.text];
UIImage *image = [UIImage imageNamed:fileName];
【讨论】:
【参考方案3】:你需要使用方法
- (UIImage*)initWithContentsOfFile:(NSString*)path
从 Documents 或 Cache 目录中初始化图像。
imageNamed: 用于从应用程序包中获取图像。
【讨论】:
以上是关于无法从 iPhone 文档目录位置中的已保存文件重新加载 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
如何通过iphone中的sqlite获取路径来显示文档目录中保存的图像