iOS中的图像的CITemperatureAndTint

Pre*_*van 9 iphone cocoa-touch core-image ios cifilter

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

Bal*_*ala 18

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]];    
Run Code Online (Sandbox Code Playgroud)

您可以在此维基百科链接中查看色温的值,为您提供哪些颜色.

以供参考

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