gpt4 book ai didi

ios - UIVisualEffectView 模糊图像

转载 作者:行者123 更新时间:2023-11-30 11:12:17 32 4
gpt4 key购买 nike

我使用 UIVisualEffectView 来模糊我的 ImageView 。然后我使用此代码将其转换为图像并保存到图像库。

 UIGraphicsBeginImageContextWithOptions(imageContainerView.bounds.size, true, 1)
imageContainerView.drawHierarchy(in: imageContainerView.bounds, afterScreenUpdates: true)
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

imageContainerView是一个包含imageview和UIVisualEffectView的 View 。

在将 imageContainerView 转换为图像之前,我将其大小增加到 2000x2000,这样我将获得高质量的图像,如果我不这样做,imageContainerView 内的所有图像都会变得像素化。

问题是,将 imageContainerView 转换为图像后,模糊的图像几乎变得不模糊,因为我增加了容器 View 的大小。

您能为这个问题提出一个解决方案吗?我只是想得到一个模糊的图像,所以如果您知道使用 slider 模糊图像的其他方法(模糊代码应该快速工作,这样 UI 就不会卡住)请告诉我。

最佳答案

I just want to get a blurred image

好的,您可以实现一些模糊滤镜效果,例如这个,然后将 slider 拖动到它。

var context = CIContext(options: nil)

func blur() {

let blurFilter = CIFilter(name: "CIGaussianBlur")
let beginImage = CIImage(image: YOURIMAGE!)
blurFilter!.setValue(beginImage, forKey: kCIInputImageKey)
blurFilter!.setValue(8, forKey: kCIInputRadiusKey)

let cropFilter = CIFilter(name: "CICrop")
cropFilter!.setValue(blurFilter!.outputImage, forKey: kCIInputImageKey)
cropFilter!.setValue(CIVector(cgRect: beginImage!.extent), forKey: "inputRectangle")

let output = cropFilter!.outputImage
let cgImg = context.createCGImage(output!, from: output!.extent)
let processedImage = UIImage(cgImage: cg cgImg mg!)
bg.image = processedImage
}

或者 GitHub 上有多个像这样的库,例如:https://github.com/FlexMonkey/Blurable

关于ios - UIVisualEffectView 模糊图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055015/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com