无法使用UIImagePicker平移从相机拍摄的图像

use*_*282 5 xcode uiimagepickercontroller uiimage ios swift

我正在使用UIImagePicker让用户拍照。拍摄照片时,我希望他们平移和缩放图像以适合裁剪框的内部,以便将图像存储为正方形。

但是,裁剪图像时,似乎无法将其移动到(人像)图像的顶部和底部(如果为横向,则为左右)。

我曾尝试搜索,但似乎没有太多信息,但这似乎是一个大问题。

有人可以帮忙吗?

这是我正在使用的少量代码:

let imagePicker = UIImagePickerController()

imagePicker.allowsEditing = true
imagePicker.sourceType = UIImagePickerControllerSourceType.camera

present(imagePicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

显然还有更多的代码,但这是主要部分。

用照片编辑:

在此处输入图片说明

因此,我希望能够移动/放大照片以选择要保存的任何正方形部分。但是,我无法从该位置移动它/不断回弹。

我可以放大,但是它仍然限制了我的顶部和底部边缘。

再次,它与photoLibrary一起使用。

Fog*_*ter 5

这是iOS 6中引入的错误,尚未修复。

为此在2012年提出了雷达,但被苹果公司关闭。我设法再次将其打开,并且在过去六个月中一直困扰着苹果开发人员。

http://openradar.appspot.com/12318774

在Apple修复此问题之前,唯一的选择是使用第三方控件或自行执行。

这是我打开的雷达...

http://openradar.appspot.com/28260087

  • 哇。最初的雷达于 2012 年开放,到了 2021 年,该 bug 仍然存在。“归档雷达!” 真是笑话 (3认同)

小智 0

我知道你说过它已经缩放了,但你可能只需要调整范围。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    image.image = info[UIImagePickerControllerEditedImage] as? UIImage
    self.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

您可能还需要使用 CGRect 在屏幕中正确设置图像。它应该居中。如果您使用的是 iPhone 5,尺寸为 640 x 1136。

发生这种情况是因为图像的宽度或高度在屏幕上达到最大。