CIFIlter Apply to animationImages of UIImageView

279 Views Asked by At

Using CIFIlter I want to apply same filter to multiple images I have multiple animationImages of 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
}

So let me know what is best solution to apply CIFilter to multiple images ?

Using above for loop CPU Usage increased more than 100% so it is totally wrong way.

Is it possible animations in GLKit View ? If yes let me provide deatils about it or Give best solution

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

This line taking more CPU usage and time

Thanks.

0

There are 0 best solutions below