How do I perform a fast pixellation filter on an image?

后端 未结 6 539
心在旅途
心在旅途 2020-12-05 03:46

I have a little problem with my pixellation image processing algorithm.

I load the image from the beginning into an array of type unsigned char* After t

6条回答
  •  感情败类
    2020-12-05 04:12

    Converted @Kai Burghardt's answer to Swift 3

    func pixelateImage(_ image: UIImage, withIntensity intensity: Int) -> UIImage {
    
        // initialize context and image
            let context = CIContext(options: nil)
            let logo = CIImage(data: UIImagePNGRepresentation(image)!)!
            // set filter and properties
            let filter = CIFilter(name: "CIPixellate")
            filter?.setValue(logo, forKey: kCIInputImageKey)
            filter?.setValue(CIVector(x:150,y:150), forKey: kCIInputCenterKey)
            filter?.setValue(intensity, forKey: kCIInputScaleKey)
            let result = filter?.value(forKey: kCIOutputImageKey) as! CIImage
            let extent = result.extent
            let cgImage = context.createCGImage(result, from: extent)
            // result
            let processedImage = UIImage(cgImage: cgImage!)
            return processedImage
    
    }
    

    calling this code as

    self.myImageView.image =  pixelateImage(UIImage(named:"test"),100)
    

提交回复
热议问题