0
我有一個形象:用的UIImage面膜的UIView通過保持透明區域和取出彩色區域
,我想申請到UIView
使彩色波形(透明區域)。我曾嘗試以下:
let image = UIImage(named: "waveform")!
let view = UIView(frame: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height))
let mask = CALayer()
mask.frame = view.bounds
mask.contents = image.cgImage!
view.layer.mask = mask
view.layer.masksToBounds = true
view.backgroundColor = UIColor.green
但是這給了我相反的效果,在波形切出:
我想波形的外側區域是透明的,並且內部被着色。我打算把UIView
放在另一個視圖之上,所以我認爲它應該是一個面具。
我試着用CIImage
在類似的問題提出反轉透明和彩色區域:
let cgImage = image.cgImage!
let ciImage = CIImage(cgImage: cgImage)
let filter = CIFilter(name: "CIColorInvert")!
filter.setValue(ciImage, forKey: kCIInputImageKey)
mask.contents = filter.outputImage!.cgImage
...但是這導致了空白view
(透明背景)。
任何幫助將不勝感激。
我覺得你找這個[逆轉的CALayer面具(https://stackoverflow.com/a/42238699/6689101) – zombie