IOS6+版本中如何对UIImage进行部分模糊处理?
理想设计是定义个UIView,提供一个框架,在框架后面的区域都模糊处理。
类似的效果图:
在 iOS 6 及以上版本中,可以使用 CIFilter 类来模糊图片。下面是一个示例代码,其中 image 是你要模糊的图片,rect 是你想要模糊的区域:
let blurRadius: CGFloat = 20.0
let context = CIContext(options: nil)
let inputImage = CIImage(image: image)
let filter = CIFilter(name: "CIGaussianBlur")
filter?.setValue(inputImage, forKey: kCIInputImageKey)
filter?.setValue(blurRadius, forKey: kCIInputRadiusKey)
if let outputImage = filter?.outputImage {
if let cgImage = context.createCGImage(outputImage, from: rect) {
let blurredImage = UIImage(cgImage: cgImage)
// 使用 blurredImage
}
}
如果你想要在 UIView 中使用模糊图片,可以使用 UIImageView 类来显示模糊后的图片。
let imageView = UIImageView(image: blurredImage)
view.addSubview(imageView)