我想要与视频中显示的过滤器相同的过滤器,我在下面的代码中使用了过滤器,但是我无法获得确切的过滤器。如果有人帮助我,我将不胜感激。
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)")
要获得确切的滤镜,您可以签出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")