CIFilter改变了UIImage纵横比 - SWIFT

Dav*_*est 6 colors uiimage ios cifilter

我在我的iOS应用程序中实现了一个CIFilter来profileImages.我已添加方向以防止像素化但我正在遭受未应用于图像的宽高比 "ScaleAspectFill".相同的彩色图像具有完美的宽高比......即当我只有:

self.p1ProfilePic.image = p1Img
Run Code Online (Sandbox Code Playgroud)
  1. 我已在Storyboard中为配置文件图像指定了确切的高度和宽度.
  2. 我尝试以编程方式将.contentMode添加为.ScaleAspectFill,但没有任何效果.
  3. 我在这里错过了什么?的CGRect?

            let originalImageP1 = CIImage(image: p1Img!)
            let filter = CIFilter(name: "CIPhotoEffectTonal")
            filter!.setDefaults()
            filter!.setValue(originalImageP1, forKey: kCIInputImageKey)
            let outputImage = filter!.outputImage
            self.p1ProfilePic.image = UIImage(CIImage: outputImage!, scale: UIScreen.mainScreen().scale, orientation: .Up)
    
    Run Code Online (Sandbox Code Playgroud)

Sim*_*man 9

创建一个UIImageCIImage你的技术产生不尊重的图像contentMode.试试这个:

let ciContext = CIContext()
let cgImage = ciContext.createCGImage(filter.outputImage!,
    fromRect: filter.outputImage!.extent)

self.p1ProfilePic.image = UIImage(CGImage: cgImage)
Run Code Online (Sandbox Code Playgroud)

干杯!

西蒙