【问题标题】:Can't Reload UIImage from Saved file in iPhone Documents Directory location无法从 iPhone 文档目录位置中的已保存文件重新加载 UIImage
【发布时间】: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 开发新手。

【问题讨论】:

    标签: ios iphone objective-c uiimage


    【解决方案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: 用于从应用程序包中获取图像。

      【讨论】:

        猜你喜欢
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        相关资源
        最近更新 更多