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