为此,我有使用遮罩图像的代码
func maskImage(image:UIImage, mask:(UIImage))->UIImage{
let imageReference = image.cgImage
let maskReference = mask.cgImage
let imageMask = CGImage(maskWidth: maskReference!.width,
height: maskReference!.height,
bitsPerComponent: maskReference!.bitsPerComponent,
bitsPerPixel: maskReference!.bitsPerPixel,
bytesPerRow: maskReference!.bytesPerRow,
provider: maskReference!.dataProvider!, decode: nil, shouldInterpolate: true)
let maskedReference = imageReference!.masking(imageMask!)
let maskedImage = UIImage(cgImage:maskedReference!)
return maskedImage
}
答案 0 :(得分:0)
我假设您想删除黑色背景并只显示镜头光晕。为此,您可以使用屏幕混合模式。
func filteredImage(image: UIImage, effect: UIImage) -> UIImage? {
guard let imageReference = CIImage(image: image),
let effectReference = CIImage(image: effect) else {
return nil
}
let filteredCIImage = effectReference.applyingFilter(
"CIScreenBlendMode",
parameters: [kCIInputBackgroundImageKey: imageReference]
)
let filteredImage = UIImage(ciImage: filteredCIImage)
return filteredImage
}