ios - 如何根据顶部正面图像裁剪图像?
问题描述
我的目的是UIImage
从UIView
. 所以我想在红色圆圈上添加清晰的边框,使输出图像看起来像第二张图像。
现在我想要这样的东西:我想在红色圆圈上添加清晰的背景,以便输出图像看起来像下图。(我知道如果我添加清晰的边框那么我无法实现这一点,所以请建议我实现这一点)
这里我只添加了颜色,这2种颜色实际上是图像
编辑
我可以通过使用下面的代码来做到这一点,但切割区域不是四舍五入的。
func cut(hole: CGRect, inView v: UIView) {
let p:CGMutablePath = CGMutablePath()
p.addRect(CGRect.init(x: v.frame.origin.x, y: v.frame.origin.y, width: v.frame.width, height: v.frame.height))
p.addRect(hole)
let s = CAShapeLayer()
s.path = p
s.fillRule = CAShapeLayerFillRule.evenOdd
v.layer.mask = s
}
这是我的演示链接:https ://gofile.io/?c=jukO6B
电流输出
任何帮助将不胜感激。
解决方案
最后我通过根据要求在这个答案中进行一些修改得到了解决方案:如何在 UIImage 中“切割”一个透明的洞?
func cut(hole: CGRect, inView v: UIView) {
let p:CGMutablePath = CGMutablePath()
v.clipsToBounds = false
p.addRect(CGRect.init(x: v.frame.origin.x, y: v.frame.origin.y, width: v.frame.width, height: v.frame.height))
p.addRoundedRect(in: CGRect.init(x: self.vwCarContainer.frame.origin.x, y: self.vwCarContainer.frame.origin.y, width: self.vwCarContainer.frame.width, height: self.vwCarContainer.frame.height), cornerWidth: self.vwCarContainer.layer.cornerRadius, cornerHeight: self.vwCarContainer.layer.cornerRadius)
let s = CAShapeLayer()
s.path = p
s.fillRule = CAShapeLayerFillRule.evenOdd
v.layer.mask = s
}
感谢所有帮助我实现这一目标的人。
推荐阅读
- react-native - 使用 react-native-popup-dialog 作为 Alert.alert
- css - Divi Child Theme 中的图标未正确显示
- php - PHP 回显长文本
- java - 我可以在 HashTable 中创建对象存储库吗?
- ruby-on-rails - rbenv-vars,环境配置文件和回形针
- android - Cordova 通过 Wifi 模拟
- javascript - 使用 JavaScript 将 Json 转换为 html 表
- r - RcppEigen 和向量化
- list - 可折叠定义列表问题上的点击复制
- css - div float 属性说明