iOS用新拍摄的照片替换照片

时间:2013-07-29 19:09:15

标签: ios objective-c ios-camera

我正在开发一款应用,让用户可以选择为自己的个人资料照片拍照,但似乎无法弄清楚如何:

  1. 获取照片以保存到用户库
  2. 获取该照片以在按下“使用”(即用户首次加载应用时存在)时替换默认照片。
  3. 有什么建议吗?这段代码可能完全关闭,但这是我开始使用的:

    - (void)takePhoto {
         UIImagePickerController *takePhotoPicker = [[UIImagePickerController alloc] init];
        if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
            takePhotoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            takePhotoPicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
        } else {
            takePhotoPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
        }
    
        [self presentViewController:takePhotoPicker animated:YES completion:nil];
    
    }
    

1 个答案:

答案 0 :(得分:1)

您需要做的是将viewController注册为UIImagePickerControllerDelegate,然后执行:

takePhotoPicker.delegate = self;

然后,您需要添加方法:

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

可用于获取图像。

要从相机或相册中获取图像,您需要从info字典中获取正确密钥的值。

例如,要获取已编辑的图像(由用户调整大小):

UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];

获得原始图片:

UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];

原始图像是用户使用相机拍摄的全屏图像。

然后,您可以使用此图像设置图像视图或上传到服务器等。

此外,您不应根据相机是否可用来设置源类型,但您应该让用户选择(如果他们想要从相册中选择,即使他们有相机)。< / p>