gpt4 book ai didi

ios - 如何使用 Swift 模糊 UIImageView 中的现有图像?

转载 作者:IT王子 更新时间:2023-10-29 05:15:17 24 4
gpt4 key购买 nike

设置很简单。

  • 带有 UIImageView 的 ViewController,已分配图像。
  • 一个 UIButton,单击它会使 UIImageView 中的图像模糊。

Storyboard

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var bg: UIImageView!

@IBAction func blur(_ sender: Any) {
let inputImage = CIImage(cgImage: (bg.image?.cgImage)!)

let filter = CIFilter(name: "CIGaussianBlur")
filter?.setValue(inputImage, forKey: "inputImage")
filter?.setValue(10, forKey: "inputRadius")
let blurred = filter?.outputImage
bg.image = UIImage(ciImage: blurred!)
}
}

当按钮被点击时,屏幕变成白色。无法弄清楚我做错了什么。有人知道我做错了什么吗?

最佳答案

您可以简单地使用UIVisualEffect 来实现模糊效果。当您尝试使用 CoreImage 实现模糊效果时。在 import CoreImage 到您的类后尝试下面的代码。

var context = CIContext(options: nil)

func blurEffect() {

let currentFilter = CIFilter(name: "CIGaussianBlur")
let beginImage = CIImage(image: bg.image!)
currentFilter!.setValue(beginImage, forKey: kCIInputImageKey)
currentFilter!.setValue(10, forKey: kCIInputRadiusKey)

let cropFilter = CIFilter(name: "CICrop")
cropFilter!.setValue(currentFilter!.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: cgimg!)
bg.image = processedImage
}

输出:

enter image description here

注意:我建议您在真实设备上测试代码,因为模拟器在 coreImage 上的性能太慢。

关于ios - 如何使用 Swift 模糊 UIImageView 中的现有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41156542/

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