2017-01-17 8 views
3

Я использую UIImagePicker, чтобы заставить пользователя сделать снимок. Когда фотография будет сделана, я хочу, чтобы они панорамировали и увеличивали изображение вокруг, чтобы поместиться внутри обрезанной рамки, чтобы изображение было сохранено как квадрат.Не удается панорамировать изображение с камеры с помощью UIImagePicker

Однако при обрезке изображения кажется, что вы не можете переместить его в верхнюю и нижнюю части (портретного) изображения (влево и вправо, если пейзаж).

Я пробовал искать, но, похоже, не так много информации, но это кажется массивной проблемой.

Может кто-нибудь помочь?

Это очень небольшое количество кода, я использую:

let imagePicker = UIImagePickerController() 

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

present(imagePicker, animated: true, completion: nil) 

Там явно больше кода, но это основная часть.

EDIT с фото:

enter image description here

Так что я хочу, чтобы иметь возможность перемещать фотографии вокруг/масштабированием, чтобы выбрать любую квадратную часть, чтобы сохранить. Тем не менее, я не могу переместить его с этой позиции/держит назад.

Я могу увеличить масштаб, но он по-прежнему ограничивает меня от верхнего и нижнего краев.

Опять же, он работает с фотобиблиотекой.

+0

пусть myPickerController = UIImagePickerController() myPickerController.delegate = сам; myPickerController.allowsEditing = истинный myPickerController.sourceType = UIImagePickerControllerSourceType.Camera self.presentViewController (myPickerController, анимированные: правда, завершение: ноль) –

+0

Вы просто говорите мне установить делегат себя? Потому что я уже сделал это – user2397282

+0

, вы проверяете, в каком устройстве? iphone 6 или еще? –

ответ

0

Я знаю, что вы сказали, что он уже масштабируется, но вам просто нужно настроить границы для этого.

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

Возможно, вам понадобится использовать CGRect, чтобы правильно установить изображение на экране. Он должен быть сосредоточен. Если вы используете и iphone 5, размеры 640 x 1136.

Это происходит из-за того, что ширина или высота изображения увеличивается до экрана.

0

Я использовал решение, предложенное в ссылке ниже: -

https://github.com/Hipo/HIPImageCropper

Он обрабатывает пейзаж и портретная правка изображения и обеспечивает увеличение и уменьшение масштаба с функцией обрезки.

Надеюсь, это поможет.

4

Это ошибка, которая была введена в iOS 6 и еще не исправлена.

Радар был поднят в 2012 году для этого, но закрыт Apple. Мне удалось снова открыть его и за последние 6 месяцев приставали к разработчикам Apple в моих контактах.

http://openradar.appspot.com/12318774

Пока это не фиксируется Apple, единственным вариантом является использование элемента управления третьей стороны или сделать это самостоятельно.

Вот радар, который я открыл ...

http://openradar.appspot.com/28260087