CIFilter已经改变了UIImage长宽比 – SWIFT

我在我的iOS应用程序中实现了一个CIFilter来profileImages。 我已经添加了方向来防止像素化,但是我正在忍受长宽比 “ScaleAspectFill”不适用于图像。 在颜色相同的图像有完美的长宽比…即,当我只有:

self.p1ProfilePic.image = p1Img 
  1. 我已经为Storyboard中的configuration文件图像指定了确切的高度和宽度。
  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) 

使用您的技术从CIImage创buildUIImage会创build不尊重contentMode图像。 试试这个:

 let ciContext = CIContext() let cgImage = ciContext.createCGImage(filter.outputImage!, fromRect: filter.outputImage!.extent) self.p1ProfilePic.image = UIImage(CGImage: cgImage) 

干杯!

西蒙