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

Objective c 如何在UIIMagePickerController中设置自定义图像,objective-c,ios,uiimage,uiimagepickercontroller,Objective C,Ios,Uiimage,Uiimagepickercontroller,我有3个选项的UIActionSheet- 拍照(从照相机) 从图书馆中选择 编辑照片(如果用户有个人资料图片) 我使用UIImagePickerController,前两个选项没有问题。用户选择照片,然后可以缩放/移动以裁剪照片 所以,我的问题是-如何将已保存的照片以当前比例因子和帧进行编辑(第三个选项)。 如果我选择“编辑照片”,我希望在预览后获得与我选择的相同的照片“状态” 这就是本地“联系人”应用程序的工作原理 您需要访问委托方法中的UIImagePickerControllerEdit

我有3个选项的UIActionSheet-

  • 拍照(从照相机)
  • 从图书馆中选择
  • 编辑照片(如果用户有个人资料图片)
  • 我使用UIImagePickerController,前两个选项没有问题。用户选择照片,然后可以缩放/移动以裁剪照片

    所以,我的问题是-如何将已保存的照片以当前比例因子和帧进行编辑(第三个选项)。 如果我选择“编辑照片”,我希望在预览后获得与我选择的相同的照片“状态”

    这就是本地“联系人”应用程序的工作原理


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

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

    然后,您可以在自己的“编辑视图”控制器中使用此图像。Contacts应用程序就是这样工作的,因为它会将编辑后的图像写回到
    ALAsset
    ,这是一个破坏性的变化。对于应用程序中的用户来说,这样做可能不是一个好主意,因此最好编写自己的编辑图像控制器来处理编辑后的图像,而不是
    UIImagePickerController
    。A显示了大量的开源回购协议,可以帮助您在这里进行裁剪。

    我想可能是一些本地员工,比如pickerController.originalImage=originalImage;和PickerController.croppedImage=croppedImage;运行编辑模式。