下面的第一张图片是原始图片
第二个图像是使用Core Image API实现的模糊图像
第三幅图像是使用UIVisualView
实现的模糊图像。
很明显,核心图像模糊了图像并缩小了图像。半径越大,白边越宽。
问题:如何使用核心图像产生视觉效果,就像UIVisualView
效果一样。
至少,如何使用Core Image模糊没有白色边框的图像。
func blur(image: UIImage, withRadius radius: Float) -> UIImage {
let context = CIContext(options: nil)
let image = CIImage(image: image)
let filter = CIFilter(name: "CIGaussianBlur")
filter?.setValue(image, forKey: kCIInputImageKey)
filter?.setValue(radius, forKey: "inputRadius")
let result = filter?.outputImage
return UIImage(cgImage: context.createCGImage(result!, from: (result?.extent)!)!)
}
第三张图片是
func addVisualEffectView() {
let effectView = UIVisualEffectView(effect: UIBlurEffect(style:.light))
effectView.frame = originalImageView.bounds // originalImageView is the ImageView represents the original image
originalImageView.addSubview(effectView)
}
答案 0 :(得分:4)
使用此功能,我可以获得视觉效果视图等模糊效果。
toolbar.setContentInsetsAbsolute(0, 0);
CIContext。核心映像的所有处理都在CIContext中完成。这有点类似于Core Graphics或OpenGL上下文。
使用提供的CIImage在上下文中调用createCGImage(from :)将返回一个新的CGImage实例。
本教程将有助于理解:
Core Image Tutorial: Getting Started
这是输出: