使用UIImagePickerController在设备上保存时捕获图像

时间:2013-07-25 17:57:47

标签: ios objective-c uiimage uiimagepickercontroller

嗨,有可能在没有保存到ios设备的情况下捕获图像。这个问题令我担心。

请有任何想法让我知道如何实现它。

1 个答案:

答案 0 :(得分:2)

是的,有可能:

- (void)takePhoto
{
    UIImagePickerController * pc = [[UIImagePickerController alloc] init];
    pc.sourceType = UIImagePickerControllerSourceTypeCamera;
    pc.delegate = self;

    pc.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
    pc.allowsEditing = YES;

    [self presentViewController:pc animated:YES completion:^{

    }];
}

#pragma mark - UIImagePickerController Delegate

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [picker dismissViewControllerAnimated:YES completion:^{
        UIImage * image = [info valueForKey:@"UIImagePickerControllerOriginalImage"];
        self.imageView.image = image;
    }];
}

修改:

如果要保存图像,只需将其保存到Caches目录(有关如何执行此操作的信息,请参阅适用于NSFileManager的apple文档)或其他堆栈溢出问题。这是NSUserDefaults的首选那也行。

如果您只是想发送它(通过电子邮件,分享或API上传),您不必先保存它。您可以使用驻留在上面的self.imageView.image属性中的内存中版本。