Чтобы получить точный фильтр, вы можете проверить цветовая температура , чтобы увидеть, какая цветовая температура приводит к тому или иному цвету. Вы также можете проверить этот вопрос , в котором объясняется использование векторов.
Затем вам следует структурировать свой код.
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")
Для справки