[英]How to make transparent area uiimage in path
在 iOS 中,
我有一个图像。
然后,我想在图像的特定路径中制作透明区域。
下图是一些图像。 并且,心脏区域是透明区域的随机路径。
我只有一张完整的图像。
我想使图像的特定区域透明。 它是 UIImage,而不是 UIImageView。 所以,我不能使用遮罩。
https://stackoverflow.com/a/8306254/2160799
我尝试使用此解决方案,但心脏区域被蓝色填充,不透明。 :(
文档是这样解释的。 因为解决方案使用 imageContext(不是 window 或 bitmap 上下文),所以我不应该使用函数( CGContext.clear(_:) )
如果提供的上下文是 window 或 bitmap 上下文,Core Graphics 会清除该矩形。 对于其他上下文类型,Core Graphics 以与设备相关的方式填充矩形。 但是,您不应在 window 或 bitmap 上下文之外的上下文中使用此 function。
您可以使用以下代码段。 在这里,您将使用 api UIGraphicsBeginImageContextWithOptions(_:_:_:)
创建一个图像上下文,并将 opaque 参数指定为false ,这将使最终图像透明。
UIGraphicsBeginImageContextWithOptions(image.size, false, 0)
image.draw(at: .zero)
if let context = UIGraphicsGetCurrentContext() {
context.addPath(bezierPath.cgPath)
context.setBlendMode(.clear)
context.setFillColor(UIColor.clear.cgColor)
context.fillPath()
let capturedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.