我正在制作一个音乐播放器应用程序,并且希望专辑封面图像上出现高斯模糊,因此我实现了以下代码,但该图像未填充UIImageView

let bgView = UIImageView(frame: CGRect(x: 0, y: 0, width: frame.width, height: frame.width))
let image = CIImage(image: (currentSong?.info.albumCover)!)
let blurFilter = CIFilter(name: "CIGaussianBlur")
blurFilter?.setValue(image, forKey: "inputImage")
let resultImage = blurFilter?.value(forKey: "outputImage") as! CIImage
let blurredImage = UIImage(ciImage: resultImage)
bgView.image = blurredImage
bgView.contentMode = UIViewContentMode.scaleAspectFit
self.addSubview(bgView)


我以为将内容模式更改为scaleAspectFit可以解决该问题,但是并没有

更新:

下面的代码为我提供了所需的图像大小,但没有模糊。是否有任何原因应用模糊会导致图像大小不同?

let bgView = UIImageView(frame: CGRect(x: 0, y: 0, width: frame.width, height: frame.width))
    let image = CIImage(image: (currentSong?.info.albumCover)!)
    bgView.image = image
    bgView.contentMode = UIViewContentMode.scaleAspectFit
    self.addSubview(bgView)

最佳答案

我认为您需要一个由UIImage而不是CGImage支持的CIImage
尝试将您的CIImage呈现为CGImage,然后从该UIImage创建您的CGImage。请参阅Getting a CGImage from CIImage以了解如何执行此操作。

关于ios - UIImage不使用AspectFit填充UIImageView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45652355/

10-12 14:38