裁剪UIImage以适合帧图像

Cai*_*uza 45 iphone objective-c uiimage ios

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

在此输入图像描述 使用Aspect Fill

在此输入图像描述 使用Aspect Fit

所以,我需要的是删除超出帧边界的图像多余.我尝试使用UIBezierPath,CGImageRef而我Google其他方法,但是我没有找到一个解决方案.

Pie*_*eau 127

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

在此输入图像描述

有两个重要的设置,即:

  1. Mode: Aspect Fill

  2. Clip Subviews

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

[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您需要以编程方式执行此操作,请使用`[imageView setContentMode:UIViewContentModeScaleAspectFill];``[imageView setClipsToBounds:YES];` (4认同)

ser*_*gio 1

在界面生成器中,访问详细信息窗格(第四个)内的“模式”UIImageView菜单,然后选择适合您的模式(我猜是“中心”或“宽高比”)。

在此输入图像描述

旧答案:

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

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

       @property(copy) NSString *contentsGravity
Run Code Online (Sandbox Code Playgroud)