UIImage方面使用drawInRect填充?
我试图绘制scaleAspectFill像内容模式。
我发现如何使用AVFoundation使sacelAspectFit但我找不到scaleAspectFill。
如果我画水平图像,我不知道x值
image.draw(in: CGRect(origin: CGPoint.init(x: ?, y: 0), size: CGSize(width: displayWidth*(image.size.width/image.size.height), height: displayWidth)))
假设你有一个名为image
,并且你想要在一个矩形的targetRect
绘制它,这样它就可以在不扭曲的情况下填充矩形,你可以使用下面的代码:
let aspect = image.size.width / image.size.height let rect: CGRect if targetRect.size.width / aspect > targetRect.size.height { let height = targetRect.size.width / aspect rect = CGRect(x: 0, y: (targetRect.size.height - height) / 2, width: targetRect.size.width, height: height) } else { let width = targetRect.size.height * aspect rect = CGRect(x: (targetRect.size.width - width) / 2, y: 0, width: width, height: targetRect.size.height) } image.draw(in: rect)
注意:这不会剪裁图像,所以它会绘制在目标矩形的边缘之外。 如果要剪裁图像,请在绘制之前调用CGContextClipToRect(context, rect)
。
还要注意,与UIGraphics相比,核心graphics垂直轴是翻转的,从左下angular开始,而不是左上angular,因此您可能需要相应地翻转矩形和剪裁矩形。
- {error =“invalid_request”; “error_description”=“必需的参数丢失:grant_type”; }迅速
- 不能用stringreplacestring
- 如何实现“向右拖动”解除导航堆栈中的视图控制器?
- 在iOS应用程序中使用swift下拉菜单
- 在iOS 10上无理由调用applicationWillResignActive(swift 3)
- 如何确定一个数组是否包含Swift中另一个数组的所有元素?
- Swift – types和协议的属性
- 无法为Unsafepointer Swift 3.0types转换初始化variables
- Xcode 6.3更新导致工作应用程序失败 – 现在工作的东西没有