Skip to content

Instantly share code, notes, and snippets.

@edwardean
Created February 28, 2018 10:57
Show Gist options
  • Save edwardean/7d7e7c44810d15eee552a19e3af5dac6 to your computer and use it in GitHub Desktop.
Save edwardean/7d7e7c44810d15eee552a19e3af5dac6 to your computer and use it in GitHub Desktop.
Swift Gaussian Blur UIImage
func blurImage(_ image: UIImage, forRect rect: CGRect, radius: Float) -> UIImage? {
let context = CIContext(options: nil)
let inputImage = CIImage(cgImage: image.cgImage!)
guard let filter = CIFilter(name: "CIGaussianBlur") else {
return nil
}
filter.setValue(inputImage, forKey: kCIInputImageKey)
filter.setValue(radius, forKey: kCIInputRadiusKey)
guard let outputImage = filter.outputImage else {
return nil
}
let rect = CGRect(origin: .zero, size: image.size)
guard let cgImage = context.createCGImage(outputImage, from: rect) else {
return nil
}
return UIImage(cgImage: cgImage)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment