2017-08-12 62 views
0

我想提出一个音乐播放器应用程序,我想这张专辑的封面图片上高斯模糊,所以我实施了内容,但图像的代码没有完全填满UIImageView的UIImage不灌装的UIImageView与AspectFit

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) 
+1

scaleAspectFit将保持比率,并且“视图边界的任何其余区域都是透明的。”从苹果文件。你可以尝试scaleToFill? – Surely

+0

@确实,我只是试过,得到了同样的结果。图像和视图的纵横比相同,所以不会产生差异。 –

+0

你能给我特定的尺寸/范围吗? UIImage,CIImage,UIImageView - 所有三个? – dfd

回答

0

我想你需要通过CGImage而不是CIImage支持的UIImage。 尝试呈现您的CIImageCGImage并从该CGImage创建您的UIImage。请参阅Getting a CGImage from CIImage了解如何执行此操作。