我想保存用户从相机胶卷中选择的图像,当app退出并重新启动时,我想向用户显示这些图像。我通过互联网搜索并没有找到太多有用的资源。我知道我可以将数据库中的图像写为blob但我不想这样做会增加数据库大小。
是否可以保存图像路径,然后使用该路径访问该图像。
答案 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];
你应该能够根据你的需要改变它们。