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

Posted

技术标签:

【中文标题】如何在 UIIMagePickerController 中设置自定义图像【英文标题】:How can I set a custom image in UIIMagePickerController 【发布时间】:2012-07-06 14:24:54 【问题描述】:

我有带有 3 个选项的 UIActionSheet -

    拍照(从相机) 从库中选择 编辑照片(如果用户有头像)

我使用 UIImagePickerController 并且前 2 个选项没有问题。用户选择照片,然后可以缩放/移动以裁剪一张。

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

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

【问题讨论】:

【参考方案1】:

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

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

然后你可以在你自己的编辑视图控制器中使用这个图像。通讯录应用程序以这种方式工作,因为它将编辑后的图像写回ALAsset,这是一种破坏性的变化。对您应用程序中的用户执行此操作可能不是一个好主意,因此最好编写您自己的编辑图像控制器来处理编辑后的图像,而不是 UIImagePickerController。 search on github 显示了大量可以帮助您在此处裁剪的开源存储库。

【讨论】:

我想可能是像pickerController.originalImage = originalImage;和 pickierController.croppedImage = croppedImage;运行编辑模式。

以上是关于如何在 UIIMagePickerController 中设置自定义图像的主要内容,如果未能解决你的问题,请参考以下文章

从保存的相机胶卷参考 url 设置 uiimageview

iPhone - 以编程方式删除状态栏

imagePickerController 选择照片时出错

imageWithData图像尺寸变大了?

Segue 图像到另一个视图控制器的问题

如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)