1

我正在制作一个应用程序,我使用相机拍照并希望将这些照片保存在 plist 上,以便将来使用。我还想从 plist 中检索保存的图像并将它们显示在 imageview 上。有多个图像。请任何人都可以帮助我

这是我用于添加到 plist 的代码

imageArray addObject:[NSString stringWithFormat:@"%@",imageView.image]];

[imageArray writeToFile:plistPath atomically:YES];

但是当我试图检索图像并将其设置在 imageview 上时,我看不到图像。谢谢。

4

2 回答 2

1

您不能像这种方法一样保存到 plist。支持的格式是 NSData、NSString、NSArray、NSDictionary、NSDate 和 NSNumber。您可以将 UIImage 转换为 NSData 并可以写入 plist。

将图像转换为 NSData

NSData *data = UIImagePNGRepresentation(imageview.image);
[imageArray addObject:data];
[imageArray writeToFile:plistPath atomically:YES];

以及 NSLog 您的文件路径以查找 yoyr plist 的保存位置。

希望这可以帮助 !!!

于 2013-03-26T12:15:02.163 回答
0

看到这个,

为了节省:

- (IBAction)saveImage {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    UIImage *image = imageView.image; // imageView is my image from camera
    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:savedImagePath atomically:NO];   
}

对于检索:

- (IBAction)getImage {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
    UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
}
于 2013-03-26T12:17:22.123 回答