裁剪UIImage以适合帧图像

时间:2013-01-30 16:42:02

标签: iphone ios objective-c uiimage

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

enter image description here 使用Aspect Fill

enter image description here 使用Aspect Fit

所以,我需要的是删除超出帧边界的图像。 我尝试使用UIBezierPathCGImageRef以及我用Google搜索的其他方法,但我找不到解决方法。

4 个答案:

答案 0 :(得分:127)

在Interface Builder中,使用以下配置:

enter image description here

有两个重要的设置,即:

  1. Mode: Aspect Fill

  2. Clip Subviews

  3. 也可以通过编程方式完成:

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

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

答案 1 :(得分:3)

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

@property (retain)IBOutlet UIImageView* imageView;

并在-(void) viewDidLoad设置

imageView.layer.masksToBounds = YES;

答案 2 :(得分:1)

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

enter image description here

老答案:

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

  

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

       @property(copy) NSString *contentsGravity

答案 3 :(得分:-1)

使用UIImageView并执行

imageView.contentMode = UIViewContentModeScaleAspectFit;
相关问题