簡體   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