iOS中的图像的CITemperatureAndTint

时间:2012-07-13 04:45:22

标签: iphone ios cocoa-touch core-image cifilter

CITemperatureAndTint是否有任何示例代码或示例?我已阅读其文档但我需要一些示例来实现它。

3 个答案:

答案 0 :(得分:17)

CIFilter *yourFilter = [CIFilter filterWithName:@"CITemperatureAndTint"];
[yourFilter setValue:yourInputImage forKey:@"inputImage"];
[yourFilter setValue:[CIVector vectorWithX:6500 Y:500] forKey:@"inputNeutral"]; // Default value: [6500, 0] Identity: [6500, 0]
[yourFilter setValue:[CIVector vectorWithX:1000 Y:630] forKey:@"inputTargetNeutral"]; // Default value: [6500, 0] Identity: [6500, 0]
CIImage *resultImage = [yourFilter valueForKey: @"outputImage"];
UIImage *resultOutputImage = [UIImage imageWithCGImage:[context createCGImage:resultImage fromRect:resultImage.extent]];    

您可以看到色温的哪些值可以为您提供this wikipedia link中的哪些颜色。

For Reference

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

答案 1 :(得分:0)

也许它可以帮助你@Sherwin Zadeh

温度:

var value: CGFloat = 0  // Min: -3000, Max: 3000

return image.applyingFilter("CITemperatureAndTint", parameters: [
             "inputNeutral": CIVector.init(x: value + 6500, y: 0),
             "inputTargetNeutral": CIVector.init(x: 6500, y: 0)
         ])

色调:

var value: CGFloat = 0  // Min: -100, Max: 100

return image.applyingFilter("CITemperatureAndTint", parameters: [
            "inputNeutral": CIVector.init(x: 6500, y: value),
            "inputTargetNeutral": CIVector.init(x: 6500, y: 0)
        ])

答案 2 :(得分:-1)

没有针对CITemperatureAndTint的具体示例,但您可以获取代码来演示如何使用NSImage作为屏幕外绘图目标。

该代码的网址为https://developer.apple.com/library/mac/#samplecode/Tinted_Image/Introduction/Intro.html#//apple_ref/doc/uid/DTS10000412-Intro-DontLinkElementID_2

我确信您可以修改它以使用CITemperatureAndTint或修改现有代码以满足您的需求。

希望这有帮助。