CITemperatureAndTint(CIFilter)的输入参数

时间:2011-12-25 11:37:02

标签: objective-c quartz-graphics core-image

我无法理解名为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 http://dl.dropbox.com/u/29925418/Screen%20Shot%202011-12-25%20at%2012.28.16%20PM.png

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

2 个答案:

答案 0 :(得分:9)

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

  

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

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

答案 1 :(得分:0)

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