【问题标题】:CIFilters to Show Clipped Highlights and ShadowsCIFilters 显示剪切的高光和阴影
【发布时间】:2018-09-24 00:47:09
【问题描述】:

在图像编辑应用程序中,我尝试使用 CIFilters 显示剪切的高光和阴影。

Filter List

我知道没有一个直接的单一过滤器,必须将几个过滤器组合在一起。

有什么想法吗?提前致谢。

【问题讨论】:

    标签: ios swift filter cifilter ciimage


    【解决方案1】:

    CIFilters 可以一个接一个地添加。例如:我可以先调整图像上的阴影,然后再裁剪它。

    func addFilters(toImage image: UIImage) -> UIImage? {
        guard let cgImage = image.cgImage else { return nil }
        let ciImage = CIImage(cgImage: cgImage)
    
        //add adjust shadow filter
        guard let shadowAdjust = CIFilter(name: "CIHighlightShadowAdjust") else { return nil }
        shadowAdjust.setValue(ciImage, forKey: kCIInputImageKey)
        shadowAdjust.setValue(1, forKey: "inputHighlightAmount")
        shadowAdjust.setValue(3, forKey: "inputShadowAmount")
        guard let output1 = shadowAdjust.outputImage else { return nil }
    
        //now output result crop 80%
        guard let crop = CIFilter(name: "CICrop") else { return nil }
        crop.setValue(ciImage, forKey: kCIInputImageKey)
        crop.setValue(CIVector(x: output1.extent.origin.x, y: output1.extent.origin.y, z: output1.extent.size.width * 0.8, w: output1.extent.size.height * 0.8), forKey: "inputRectangle")
        guard let output2 = crop.outputImage else { return UIImage(ciImage: output1) }
    
        //the image will be croped and shadow adjusted
        return UIImage(ciImage: output2)
    }
    

    【讨论】:

    • 明白。我过去已经将它们堆叠起来,效果很好。目前,我无法找到正确的过滤器组合来显示高光和阴影
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多