【问题标题】:How to save a new-token photo in IOS如何在 IOS 中保存新令牌照片
【发布时间】:2012-02-23 15:47:06
【问题描述】:

我现在正在为 UIImagePicker 苦苦挣扎。

我已经阅读了文档,但似乎没有提到我应该如何保存新的令牌照片,我的意思是在我的应用中将其保存到我自己的文档中。

其实,我的核心数据中的一个实体中有一个“照片”属性,

所以,“照片”应该只是一个 NSString 来保存真实照片的文件路径,对吧?

但是如何保存该照片并获取其正确的文件路径?

我只是对NSFilePath之类的东西知之甚少,希望有人教我一点。

非常感谢!

【问题讨论】:

    标签: ios save uiimagepickercontroller photo filepath


    【解决方案1】:

    您可能知道如何呈现图像选择器:

    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    [viewController presentModalViewController:picker animated:YES];
    

    通过上面的 viewController 实现了 UIImagePickerControllerDelegate 并确保你实现了这个功能:

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

    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)returnedPicker
    

    当用户选择了一张照片时,第一个方法被调用。在这种方法中,您可以使用以下方法获取图像:

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    

    要将其写入文件,您可以将其设为 JPEG 或 PNG。如果是 JPEG,您可以这样做:

    [UIImageJPEGRepresentation(image, 1.0) writeToFile:filename atomically:YES];
    

    您只需要设置文件名。

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docsDir = [paths objectAtIndex:0];
    NSString *filename = [docsDir stringByAppendingPathComponent:@"myFilename.jpg"];
    

    要将图像恢复为 UIImage,请执行以下操作:

    NSData *data = [NSData dataWithContentsOfFile:filename;
    if(data != nil)
        UIImage *image = [UIImage imageWithData:data];
    

    【讨论】:

    • 非常感谢!这是非常具体的,所以文件名只是一个 NSString?当我需要取回照片时,我还使用文件名作为 NSString,而不是考虑照片的文件路径,如 /document/resource/ 或类似的东西?
    • 添加了几行来解释这一点 - 是的,在这种情况下它只是一个 NSString 但你需要在文档目录前面加上前缀。
    • 再次感谢!这对我帮助很大!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多