CIFilter改变了UIImage纵横比 - SWIFT

时间:2016-03-02 02:11:11

标签: ios colors uiimage cifilter

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

self.p1ProfilePic.image = p1Img
  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)
    

1 个答案:

答案 0 :(得分:9)

使用您的技术从UIImage创建CIImage会创建不尊重contentMode的图片。试试这个:

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

self.p1ProfilePic.image = UIImage(CGImage: cgImage)

干杯!

西蒙