我正在制作一个音乐播放器应用程序,我想要在专辑封面图像上进行高斯模糊,因此我实现了下面的代码,但图像没有填充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)
最佳答案
我认为您需要一个由 CGImage
支持的 UIImage
,而不是 CIImage
。
尝试将您的 CIImage
渲染为 CGImage
并从该 CGImage
创建您的 UIImage
。请参阅Getting a CGImage from CIImage了解如何做到这一点。
关于ios - UIImage 未使用 AspectFit 填充 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45652355/