iOS将照片替换为新拍摄的照片



我正在开发一款应用程序,该应用程序允许用户为自己的个人资料照片拍照,但似乎不知道如何:

  1. 获取要保存到用户库的照片
  2. 当用户按下"使用"时(即用户首次加载应用程序时),获取该照片以替换默认照片

有什么建议吗?这个代码可能完全关闭了,但这是我开始使用的:

- (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];
}

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

takePhotoPicker.delegate=自身;

然后,您需要添加方法:

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

您可以使用它来获取图像。

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

例如,要获得编辑后的图像(按用户调整大小):

UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];

获得原始图像:

UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];

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

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

此外,你不应该根据相机是否可用来设置源类型,但你应该让用户选择(以防他们想从相册中选择,即使他们有相机)。

相关内容

最新更新