首页 > 解决方案 > 如何正确添加蒙版图像?

问题描述

我想在图像上添加灯光效果。我已经掩盖了,这是我的形象在此处输入图像描述

为此,我有使用遮罩图像的代码

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
    }

结果就是这样 在此处输入图像描述 ,它只会变成白色请帮帮我

标签: iosswiftiphoneimagemask

解决方案


我假设您要删除黑色背景并仅显示镜头光晕。为此,您可以使用屏幕混合模式。

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
}

推荐阅读