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