簡體   English   中英

CIFilter應用於圖像無法正常工作-Swift

[英]CIFilter applied to an image not working - swift

我正在嘗試將CIFilter應用於已經在單視圖應用程序的imageView中顯示的圖像,但它似乎沒有應用過濾器。 有人可以請教嗎? 我的輸入圖像看起來完全一樣。

迅速:

let filter = CIFilter.init(name: "CIHueAdjust")
let context = CIContext()
var extent: CGRect!
var scaleFactor: CGFloat!

@IBOutlet weak var img: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    let ciImage = CIImage.init(image: img.image!)

    filter?.setDefaults()
    filter?.setValue(ciImage, forKeyPath: kCIInputImageKey)
    let result = filter?.outputImage
    print("result: \(result)")

    var image = UIImage.init(cgImage: context.createCGImage(result!, from: result!.extent)!)
    img.image = image


    img.image = image
}

安慰:

 result: Optional(<CIImage: 0x1c001a7a0 extent [0 0 2016 1512]>
 affine [1 0 0 -1 0 1512] extent=[0 0 2016 1512] opaque
colormatch "sRGB IEC61966-2.1"_to_workingspace extent=[0 0 2016 1512] opaque
  IOSurface 0x1c401a780(169) seed:1 YCC420f 601 alpha_one extent=[0 0 2016 1512] opaque

它在注釋中,但這是有關如何使用Swift 4設置對CIHueAdjust的調用的完整(更好格式)答案:

let filter = CIFilter(name: "CIHueAdjust")
let context = CIContext()
var extent: CGRect!
var scaleFactor: CGFloat!

@IBOutlet weak var img: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    let ciImage = CIImage(image: img.image!)

    // Note: you may use kCIInputImageKey for inputImage
    filter?.setValue(ciImage, forKey: "inputImage")
    filter?.setValue(Float(1), forKey: "inputAngle")
    let result = filter?.outputImage

    var image = UIImage(cgImage: context.createCGImage(result!, from: result!.extent)!)
    img.image = image

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM