[英]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.