如何在iOS的图片上应用冷色调CIFilter?

问题描述 投票:0回答:1

我想要与视频中显示的过滤器相同的过滤器,我在下面的代码中使用了过滤器,但是我无法获得确切的过滤器。如果有人帮助我,我将不胜感激。

var filter = CIFilter(name: "CITemperatureAndTint")!
let originalImage = self.imgView.image    // replace yourimage with the name of your image
let inputCIImage = CIImage(image: originalImage!)!
self.filter.setValue(inputCIImage, forKey: kCIInputImageKey)
let warmX = (sender.value) + 6500
let warmy = (5 + sender.value) + 380

self.filter.setValue(CIVector(x: CGFloat(warmX), y: 0), forKey: "inputNeutral")
self.filter.setValue(CIVector(x: 6500, y: 0), forKey: "inputTargetNeutral")
print("warm:\(warmX,warmy)")

Filter Video link

swift core-image cifilter imagefilter
1个回答
1
投票

要获得确切的滤镜,您可以签出color temperature以查看哪种色温导致哪种颜色。您也可以在此question中查看矢量用法的说明。

然后您应该构建代码。

let originalImage = self.imgView.image    // replace yourimage with the name of your image
let inputCIImage = CIImage(image: originalImage!)!


var filter = CIFilter(name: "CITemperatureAndTint")!
filter.setValue(inputCIImage, forKey: kCIInputImageKey)
let warmX = (sender.value) + 6500
let warmy = (5 + sender.value) + 380 // Was never used

filter.setValue(CIVector(x: CGFloat(warmX), y: 0), forKey: "inputNeutral")
filter.setValue(CIVector(x: 6500, y: 0), forKey: "inputTargetNeutral")
print("warm:\(warmX,warmy)")

然后您应该使用滑块。基本上,通过使用以下值来应用冷过滤器:

filter.setValue(CIVector(x: 16000, y: 1000), forKey: "inputNeutral")
filter.setValue(CIVector(x: 1000, y: 500), forKey: "inputTargetNeutral")

并且通过使用这些值来实现暖过滤器:

filter.setValue(CIVector(x: 6500, y: 500), forKey: "inputNeutral")
filter.setValue(CIVector(x: 1000, y: 630), forKey: "inputTargetNeutral")

For Reference

© www.soinside.com 2019 - 2024. All rights reserved.