保存图像以供以后在 iPhone 中使用

Posted

技术标签:

【中文标题】保存图像以供以后在 iPhone 中使用【英文标题】:Save images for later use in iPhone 【发布时间】:2012-03-14 14:30:02 【问题描述】:

我想保存用户从相机胶卷中选择的图像,当应用程序退出并重新启动时,我想向用户显示这些图像。我在互联网上搜索并没有找到太多有用的资源。我知道我可以将数据库中的图像写为 blob,但我不想这样做,因为会增加数据库大小。 是否可以保存图像路径,然后使用该路径访问该图像。

【问题讨论】:

这是可能的,通常保存在设备上的 Documents 或 Library/Caches 目录中。 能否提供一些教程或代码? 【参考方案1】:

将图像保存到 DocumentDirectory

NSString *imageName = "myImage.png";
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES);
NSString * documentsDirectoryPath = [paths objectAtIndex:0];

NSString *dataPath = [documentsDirectoryPath  stringByAppendingPathComponent:imageName];
NSData* settingsData = UIImagePNGRepresentation(imageData);

[settingsData writeToFile:dataPath atomically:YES];

编辑:

如果您想在 iTunes->Apps->Documents 中查看 iPhone/iPad 上保存的图像(或共享它们) 只需在 Info.plist 中添加“应用程序支持 iTunes 文件共享”:“是”

【讨论】:

【参考方案2】:

你必须使用UIImagePickerController 从相机胶卷中获取媒体

你会在委托方法中得到图片

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

在这里您可以获取图像并将其保存为 NSData .. 在文件中,然后下次取回它

编辑:

保存

    Data = UIImageJPEGRepresentation(theImage,1.0);

       NSString  *imagePath = [ContentFolder stringByAppendingPathComponent:[NSString stringWithFormat:@" %d.plist",Counter]];
        NSLog(@" iamge path %@",imagePath);


        NSMutableDictionary *objectDictionary = [[NSMutableDictionary alloc]initWithObjectsAndKeys:data,@"data", nil];

        [objectDictionary writeToFile:imagePath atomically:YES];

你应该能够根据你的需要改变这些..

【讨论】:

我知道,我可以在 NSData 中转换图像,但主要问题是保存它们,您能否提供一些代码如何将图像写入文件。谢谢

以上是关于保存图像以供以后在 iPhone 中使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将url图像存储在缓存中,然后在iphone的imageview中显示

将自定义图像(非 JPEG)保存到 iPhone 照片目录

iPhone 核心数据和多线程

将 .p12 证书存储在钥匙串中以供以后使用

如何在iphone中保存缩放的图像

如何在 iPhone 设备中本地保存图像和数据