繁体   English   中英

如何在路径中制作透明区域uiimage

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM