1

使用 CIFIlter 我想对多个图像应用相同的过滤器我有UIImageView 的多个动画图像

        let sepiaFilter = CIFilter(name:"CIColorControls")
  let brightness =  0.8

for  image in imageView.animationImages {

                guard let ciimage = CIImage(image: image) else { return }
                if  let newimage = self.sepiaFilter(ciimage, filter: filter, intensity:brightness )
                {

                    let cgImage:CGImage = ciImageCtx!.createCGImage(newimage, from: newimage.extent)!
                    let image:UIImage = UIImage.init(cgImage: cgImage)

                    newImages.append(image)
                }



            }
        }
 func sepiaFilter(_ input: CIImage,filter: CIFilter?, intensity: Double) -> CIImage?
{
    filter?.setValue(input, forKey: kCIInputImageKey)
    filter?.setValue(intensity, forKey: kCIInputBrightnessKey)
    return filter?.outputImage
}

那么让我知道将CIFilter 应用于多个图像的最佳解决方案是什么?

使用上面的 for 循环CPU 使用率增加了 100% 以上,所以这是完全错误的方式。

GLKit View中是否有可能的动画?如果是,请让我提供有关它的详细信息或提供最佳解决方案

**let cgImage:CGImage = ciImageCtx!.createCGImage(newimage, from: newimage.extent)!**

此行占用更多 CPU 使用率和时间

谢谢。

4

0 回答 0