我有 3 个选项的 UIActionSheet -
- 拍照(从相机)
- 从图书馆挑选
- 编辑照片(如果用户有头像)
我使用 UIImagePickerController 并且前两个选项没有问题。用户选择照片,然后可以缩放/移动以裁剪一张。
所以,我的问题是 - 如何使用当前的比例因子和框架将已保存的照片用于编辑(第三个选项)。 Fe,如果我选择“编辑照片”,我想获得与预览后选择的相同照片“状态”。
这就是本机“联系人”应用程序的工作原理!
我有 3 个选项的 UIActionSheet -
我使用 UIImagePickerController 并且前两个选项没有问题。用户选择照片,然后可以缩放/移动以裁剪一张。
所以,我的问题是 - 如何使用当前的比例因子和框架将已保存的照片用于编辑(第三个选项)。 Fe,如果我选择“编辑照片”,我想获得与预览后选择的相同照片“状态”。
这就是本机“联系人”应用程序的工作原理!
您需要UIImagePickerControllerEditedImage
在委托方法中访问该对象:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
if (!image) image = [info objectForKey:UIImagePickerControllerOriginalImage];
....
}
然后你可以在你自己的编辑视图控制器中使用这个图像。通讯录应用程序以这种方式工作,因为它将编辑后的图像写回 ,这ALAsset
是一个破坏性的更改。对您应用程序中的用户执行此操作可能不是一个好主意,因此最好编写您自己的编辑图像控制器来处理编辑后的图像,而不是UIImagePickerController
. 在 github 上的搜索显示了大量可以帮助您在此处裁剪的开源存储库。