CIFIlter应用于UIImageView的animationImages

时间:2019-01-08 05:08:13

标签: swift uiimageview cifilter glkview

使用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应用于多张图像的最佳解决方案是什么?

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

GLKit视图中是否可能存在动画? 如果是,让我提供详细信息或提供最佳解决方案

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

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

谢谢。

0 个答案:

没有答案