裁剪UIImage以适应帧图像

我需要裁剪一个UIImage ,使用设备相机拍摄,以便它适合另一个UIImage ,它代表一个frame (带有圆angular的边框等等)。 检查下面的图像:

在这里输入图像说明 使用方面填充

在这里输入图像说明 使用Aspect Fit

所以,我需要的是去除超出帧边界的图像。 我尝试使用UIBezierPathCGImageRef和其他方法,我谷歌search,但我没有find这个解决scheme。

在Interface Builder中,使用以下configuration:

在这里输入图像说明

有两个重要的设置,即:

  1. Mode: Aspect Fill

  2. Clip Subviews

它也可以通过编程来完成:

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

这将正确地填充图像的视图,保持其纵横比,并隐藏不适合的东西。

在你的控制器中制作一个IBOutlet

 @property (retain)IBOutlet UIImageView* imageView; 

并在-(void) viewDidLoad设置

 imageView.layer.masksToBounds = YES; 

在界面生成器中,访问详细信息窗格(第四个)内的模式菜单,并为您的UIImageView (我想“中心”或“方面适合”)select正确的一个。

在这里输入图像说明

老解答:

您可以使用CALayer的contentGravity属性来使其工作

一个常量,指定图层的内容如何在边界内定位或缩放。

  @property(copy) NSString *contentsGravity 

使用UIImageView并做

 imageView.contentMode = UIViewContentModeScaleAspectFit;