Подтвердить что ты не робот

Обрезать UIImage, чтобы он соответствовал изображению рамки

Мне нужно обрезать UIImage, взятый с помощью камеры устройства, чтобы он помещался внутри другого UIImage, который представляет frame (с закругленными границами и т.д.). Проверьте изображение ниже:

enter image description here Использование Aspect Fill

enter image description here Использование Aspect Fit

Итак, мне нужно удалить избыток изображения, который выходит за рамки рамки. Я попытался использовать UIBezierPath, CGImageRef и другие методы, которые я искал Google, но я не нашел для этого решения.

4b9b3361

Ответ 1

В Interface Builder используйте следующую конфигурацию:

enter image description here

Существуют два важных параметра, а именно:

  • Mode: Aspect Fill

  • Clip Subviews

Это также можно сделать программно:

[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];

Это правильно заполнит представление изображением, сохранит его соотношение сторон и скроет то, что не подходит.

Ответ 2

сделать IBOutlet в вашем контроллере.

@property (retain)IBOutlet UIImageView* imageView;

и в -(void) viewDidLoad установите

imageView.layer.masksToBounds = YES;

Ответ 3

В интерфейсе Builder войдите в меню "Режим" внутри панели подробностей (четвертый) и выберите правильный для своего UIImageView (я думаю, "центр" или "аспект подходит" ).

enter image description here

СТАРЫЙ ОТВЕТ:

Вы можете использовать свойство contentGravity свойства CALayer, чтобы заставить его работать

Константа, которая определяет, как содержимое слоя размещается или масштабируется в пределах его границ.

       @property(copy) NSString *contentsGravity

Ответ 4

Используйте UIImageView и

imageView.contentMode = UIViewContentModeScaleAspectFit;