如何在UIIMagePickerController中设置自定义图像

时间:2012-07-06 14:24:55

标签: objective-c ios uiimage uiimagepickercontroller

我有UIActionSheet有3个选项 -

  1. 拍照(来自相机)
  2. 从库中选择
  3. 编辑照片(如果用户有个人资料图片)
  4. 我使用UIImagePickerController,前两个选项没有问题。用户选择照片,然后可以缩放/移动到裁剪。

    所以,我的问题是 - 如何将已保存的照片用于编辑(第3个选项)以及当前比例因子和帧。 F.e如果我选择“编辑照片”,我希望得到预览后我选择的相同照片“状态”。

    这就是原生“联系”应用程序的工作原理!

    photo's preview

1 个答案:

答案 0 :(得分:1)

您需要访问委托方法中的UIImagePickerControllerEditedImage对象:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
    if (!image) image = [info objectForKey:UIImagePickerControllerOriginalImage];
    ....
}

然后,您可以在自己的编辑视图控制器中使用此图像。 “联系人”应用程序以这种方式工作,因为它将编辑后的图像写回ALAsset,这是一种破坏性的更改。为您的应用中的用户执行此操作可能是个坏主意,因此最好编写自己的编辑图像控制器,以处理已编辑的图像而不是UIImagePickerControllersearch on github显示了大量的开源回购,可以帮助您在这里进行裁剪。