CITemperatureAndTint(CIFilter)的输入参数

问题描述 投票:3回答:2

我无法理解名为CITemperatureAndTint的CIFilter的输入参数。文档说它有两个输入参数,它们都是2D CIVector。

我经常使用这个过滤器 - 通过实际代码,通过Core Image Fun House(来自Apple的示例项目 - “FunHouse”)和iPhoto。

我的直觉说这个过滤器应该有两个标量输入参数:一个用于温度,一个用于色调。如果您查看iPhoto的UI,您会看到:

iPhotos Temperature and Tint UI的屏幕截图:

Screenshot of iPhotos Temperature and Tint UI

正如所料:一个温度滑块和一个色调滑块。苹果如何将每个滑块的值“绑定”到2D-Vector? akaru已经问过这个问题,但没有得到答案:What's up with CITemperatureAndTint having vector inputs?

objective-c quartz-graphics core-image
2个回答
9
投票

我在Apple开了一个技术支持事件并问了同样的问题。以下是Apple工程师的答案:

CITemperatureAndTint有三个输入参数:Image,Neutral和TargetNeutral。中性和TargetNeutral属于2D CIVector类型,在两者中,请注意第一维指的是温度,第二维指的是Tint。 CITemperatureAndTint过滤器基本上做的是计算一个矩阵,该矩阵使RGB值适应由中性(srcTemperature,srcTint)定义的源白点到TargetNeutral定义的目标白点(dstTemperature,dstTint),然后在输入图像上应用此矩阵(使用CIColorMatrix过滤器)。如果“中性”和“目标中性”具有相同的值,则应用此滤镜后图像不会更改。我不知道有关iPhoto的实现细节,但我认为两个滑动条给出了要添加到源图像的温度和色调变化(即源和目标温度和色调值之间的差异)。

现在我必须理解这个答案,但这似乎是Apple的一个非常好的回应。


0
投票

它们应该是包含色温的2D矢量。默认值(6500,0)将保持颜色不变,如here所述。您可以看到色温的值可以为您提供this wikipedia link中的哪些颜色。我不确定矢量的第二个元素是什么。

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