模糊UIImage不剪辑(Swift)

时间:2015-04-22 21:57:18

标签: ios swift uiimageview uiimage cifilter

我有以下代码来模糊UIImageView中的图像。然后它将该图像放入UIImageView。 在应用模糊效果之前,图像剪辑并设置为ScaleAspectFill但是一旦应用了效果,它就会拉伸图像。我哪里错了?

由于

let rectangle = UIImageView(frame: CGRectMake(xPosPix+100, yPosPix, widthPix, heightPix))

rectangle.contentMode = UIViewContentMode.ScaleAspectFill
rectangle.frame = CGRectMake(xPosPix+100, yPosPix, widthPix, heightPix)
rectangle.layer.opacity = opacity
rectangle.layer.cornerRadius = cornerRadius
rectangle.clipsToBounds = true
self.view.addSubview(rectangle)

var image = rectangle.image
var imageToBlur = CIImage(image: image)
var blurfilter = CIFilter(name: "CIGaussianBlur")
blurfilter.setValue(imageToBlur, forKey: "inputImage")
var resultImage = blurfilter.valueForKey("outputImage") as! CIImage
var blurredImage = UIImage(CIImage: resultImage)
rectangle.layer.cornerRadius = cornerRadius
rectangle.clipsToBounds = true
rectangle.image = blurredImage

1 个答案:

答案 0 :(得分:0)

我想你可能想要

rectangle.layer.masksToBounds = true;

而不是第二个

rectangle.clipsToBounds = true

另外,如果你使用layoutConstraints,他们喜欢乱七八糟的角落。如果是这种情况,请尝试在layoutSubviews

中设置角半径属性