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

时间:2012-03-14 14:30:03

标签: iphone objective-c ios xcode save

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

2 个答案:

答案 0 :(得分:4)

将图像保存到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上保存的图像(或共享它们) jut添加Info.plist“应用程序支持iTunes文件共享”:“是”

答案 1 :(得分:1)

你必须使用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];

你应该能够根据你的需要改变它们。