我已经在我的iOS应用中实现了CIFilter来对profileImages进行配置。我添加了方向以防止像素化,但是我的宽高比“ScaleAspectFill”不适用于图像。相同颜色的图像具有完美的宽高比...即当我只有:

self.p1ProfilePic.image = p1Img
  • 我已为 Storyboard 中的个人资料图像指定了确切的高度和宽度。
  • 我尝试以编程方式将.contentMode添加为.ScaleAspectFill,但没有任何效果。
  • 我在这里想念什么? 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)
    
  • 最佳答案

    使用您的技术从UIImage创建CIImage会创建不遵守contentMode的图像。尝试以下方法:

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

    干杯!

    西蒙

    关于ios - CIFilter已更改UIImage长宽比-SWIFT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35737160/

    10-15 15:12