cifilter 可视化

//Iphone中目前可用的

CIAdditionCompositing     //影像合成

CIAffineTransform           //仿射变换

CICheckerboardGenerator       //棋盘发生器

CIColorBlendMode              //CIColor混合模式

CIColorBurnBlendMode          //CIColor燃烧混合模式

CIColorControls

CIColorCube                   //立方体

CIColorDodgeBlendMode         //CIColor避免混合模式

CIColorInvert                 //CIColor反相

CIColorMatrix                 //CIColor矩阵

CIColorMonochrome             //黑白照

CIConstantColorGenerator      //恒定颜色发生器

CICrop                        //裁剪

CIDarkenBlendMode             //亮度混合模式

CIDifferenceBlendMode         //差分混合模式

CIExclusionBlendMode          //互斥混合模式

CIExposureAdjust              //曝光调节

CIFalseColor                  //伪造颜色

CIGammaAdjust                 //灰度系数调节

CIGaussianGradient            //高斯梯度

CIHardLightBlendMode          //强光混合模式

CIHighlightShadowAdjust       //高亮阴影调节

CIHueAdjust                   //饱和度调节

CIHueBlendMode                //饱和度混合模式

CILightenBlendMode

CILinearGradient              //线性梯度

CILuminosityBlendMode         //亮度混合模式

CIMaximumCompositing          //最大合成

CIMinimumCompositing          //最小合成

CIMultiplyBlendMode           //多层混合模式

CIMultiplyCompositing         //多层合成

CIOverlayBlendMode            //覆盖叠加混合模式

CIRadialGradient              //半径梯度

CISaturationBlendMode         //饱和度混合模式

CIScreenBlendMode             //全屏混合模式

CISepiaTone                   //棕黑色调

CISoftLightBlendMode          //弱光混合模式

CISourceAtopCompositing

CISourceInCompositing

CISourceOutCompositing

CISourceOverCompositing

CIStraightenFilter            //拉直过滤器

CIStripesGenerator            //条纹发生器

CITemperatureAndTint          //色温

CIToneCurve                   //色调曲线

CIVibrance                    //振动

CIVignette                    //印花

CIWhitePointAdjust            //白平衡调节

官方文档中列表:

CICategoryBlur

CICategoryColorAdjustment

CICategoryColorEffect

CICategoryCompositeOperation

CICategoryDistortionEffect

CICategoryGenerator

CICategoryGeometryAdjustment

CICategoryGradient

CICategoryHalftoneEffect

CICategoryReduction

CICategorySharpen

CICategoryStylize

CICategoryTileEffect

CICategoryTransition

==============================================================

[Addition] CIAdditionCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Affine Transform] CIAffineTransform

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputTransform : {
CIAttributeClass = NSValue;
CIAttributeDefault = "CGAffineTransform: {{1, 0, 0, 1}, {0, 0}}";
CIAttributeIdentity = "CGAffineTransform: {{1, 0, 0, 1}, {0, 0}}";
CIAttributeType = CIAttributeTypeTransform;
}

==============================================================

[Checkerboard Generator] CICheckerboardGenerator

inputSharpness : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeMax = 1;
CIAttributeMin = 0;
CIAttributeSliderMax = 1;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeScalar;
}

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0 0 0 1)";
}

inputCenter : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[150 150]";
CIAttributeType = CIAttributeTypePosition;
}

inputWidth : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 80;
CIAttributeSliderMax = 800;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeDistance;
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
}

//  filter

CIFilter *filter = [CIFilter filterWithName:@"CICheckerboardGenerator"];

[filter setValue:[CIVector vectorWithX:100 Y:100] forKey:@"inputCenter"];

[filter setValue:[NSNumber numberWithInt:1] forKey:@"inputSharpness"];

[filter setValue:[NSNumber numberWithInt:80] forKey:@"inputWidth"];

[filter setValue:[CIColor colorWithCGColor:[UIColor whiteColor].CGColor ] forKey:@"inputColor1"];

[filter setValue:[CIColor colorWithCGColor:[UIColor redColor].CGColor ] forKey:@"inputColor1"];

// output

NSLog(@"attributes: %@", [filter attributes]);

CIImage *outputImage = [filter outputImage];

CGImageRef cgimg = [context createCGImage:outputImage fromRect:self.view.frame];

UIImage *newImg = [UIImage imageWithCGImage:cgimg];

注意:filter生成的outputImage无限大,不能用[outputImage extends]取得rect。

==============================================================

[Color Blend Mode] CIColorBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIColorBlendMode"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:backgroundImage forKey:@"inputBackgroundImage"];

==============================================================

[Color Burn Blend Mode] CIColorBurnBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;}

CIFilter *filter = [CIFilter filterWithName:@"CIColorBurnBlendMode"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:backgroundImage forKey:@"inputBackgroundImage"];

==============================================================

[Color Cube] CIColorCube

inputCubeDimension : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 2;
CIAttributeIdentity = 2;
CIAttributeMax = 64;
CIAttributeMin = 2;
CIAttributeType = CIAttributeTypeCount;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputCubeData : {
CIAttributeClass = NSData;
CIAttributeDefault = ;
CIAttributeIdentity = ;
}

色彩立方

CIColorCube 过滤器利用一个三维色彩表对源图像的象素进行转换。图 4-27 显示了利用 CIColorCube 过滤器可以达到的效果。最左边是海滩风景的原始图像。右边三幅图像是对原始图像应用了不同的色彩表取值所得到的效果。

图 4-27 :  原始图 (最左边)与应用了色彩立方过滤器处理以后所得到的图像

所属类别: kCICategoryColorEffect, kCICategoryVideo, kCICategoryInterlaced, kCICategoryNonSquarePixels, kCICategoryStillImage, kCICategoryBuiltIn

参数

inputImage

需要处理的 CIImage 对象。

inputCubeData

一个指向色彩立方数据的 NSData 指针,这个色彩立方数据由经过 alhpa 预相乘的浮点型 RGBA 元素构成,这些元素按照下面的方式排序:所有数据的列和分别以红色和绿色为索引。每个数据平面后面紧跟更高一层的数据平面,平面的索引是蓝色。

比如,如果一张表有16行、16列、16层平面,那么它就有4096个元素。每个元素为16字节 (4 个浮点型数字),因此这张表占用的物理空间为 64K 。如果一个元素的地址表示为红色所谓是5、绿色索引为7、蓝色索引为11,那么这个元素的位移量为:

5 + 7 * 16 + 11 * 16 * 16 = 2933

需要注意的是,行、列、平面等索引以及元素位移的起始值均为 0。

如果表中的值范围在[0...1]以外,那么 CIColorCube 过滤器的行为会是不确定的。

inputCubeDimension

色彩立方表的边界大小。这个值必须是一个整数,并且需要是2的幂(n次方)。

==============================================================

[Color Dodge Blend Mode] CIColorDodgeBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIColorDodgeBlendMode"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:backgroundImage forKey:@"inputBackgroundImage"];

==============================================================

[Color Invert] CIColorInvert

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIColorInvert"];

[filter setValue:inputImage forKey:@"inputImage"];

==============================================================

[Color Matrix] CIColorMatrix

inputBiasVector : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 0 0 0]";
CIAttributeIdentity = "[0 0 0 0]";
}

inputRVector : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[1 0 0 0]";
CIAttributeIdentity = "[1 0 0 0]";
}

inputAVector : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 0 0 1]";
CIAttributeIdentity = "[0 0 0 1]";
}

inputBVector : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 0 1 0]";
CIAttributeIdentity = "[0 0 1 0]";
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputGVector : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 1 0 0]";
CIAttributeIdentity = "[0 1 0 0]";
}

CIFilter *filter = [CIFilter filterWithName:@"CIColorMatrix"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[CIVector vectorWithX:1 Y:0 Z:0 W:0] forKey:@"inputRVector"];

[filter setValue:[CIVector vectorWithX:0 Y:0.9 Z:0.3 W:0] forKey:@"inputGVector"];

[filter setValue:[CIVector vectorWithX:0 Y:0.1 Z:0.7 W:0] forKey:@"inputBVector"];

CIFilter *filter = [CIFilter filterWithName:@"CIColorMatrix"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[CIVector vectorWithX:0.8 Y:0 Z:0.3 W:0] forKey:@"inputRVector"];

[filter setValue:[CIVector vectorWithX:0 Y:1 Z:0 W:0] forKey:@"inputGVector"];

[filter setValue:[CIVector vectorWithX:0.2 Y:0 Z:0.8 W:0] forKey:@"inputBVector"];

色彩矩阵

CIColorMatrix 过滤器对源色彩值进行预相乘运算并对每个色彩组件加上一个偏移参数。请比较下面的图像与图 4-19 中的原始图像。

注意:三个vector的rgb值纵向相加=1时不会产生色偏

==============================================================

[Color Monochrome] CIColorMonochrome

inputColor : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0.6 0.45 0.3 1)";
CIAttributeType = CIAttributeTypeColor;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputIntensity : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeIdentity = 0;
CIAttributeSliderMax = 1;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeScalar;
}

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:0.8] forKey:@"inputIntensity"];

==============================================================

[Constant Color Generator] CIConstantColorGenerator

inputColor : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 0 0 1)";
CIAttributeType = CIAttributeTypeColor;
}

==============================================================

[Crop] CICrop

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputRectangle : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[-1.70141e+38 -1.70141e+38 3.40282e+38 3.40282e+38]";
CIAttributeIdentity = "[-1.70141e+38 -1.70141e+38 3.40282e+38 3.40282e+38]";
CIAttributeType = CIAttributeTypeRectangle;
}

[Darken Blend Mode] CIDarkenBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Difference Blend Mode] CIDifferenceBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Exclusion Blend Mode] CIExclusionBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Exposure] CIExposureAdjust

inputEV : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeSliderMax = 10;
CIAttributeSliderMin = "-10";
CIAttributeType = CIAttributeTypeScalar;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIExposureAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:1] forKey:@"inputEV"];

==============================================================

[False Color] CIFalseColor

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 0.9 0.8 1)";
CIAttributeType = CIAttributeTypeColor;
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0.3 0 0 1)";
CIAttributeType = CIAttributeTypeColor;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Gamma Adjust] CIGammaAdjust

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputPower : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeIdentity = 1;
CIAttributeMin = 0;
CIAttributeSliderMax = 4;
CIAttributeSliderMin = "0.25";
CIAttributeType = CIAttributeTypeScalar;
}

CIFilter *filter = [CIFilter filterWithName:@"CIGammaAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:0.5] forKey:@"inputPower"];

==============================================================

[Gaussian Gradient] CIGaussianGradient

inputRadius : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 300;
CIAttributeMin = 0;
CIAttributeSliderMax = 800;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeDistance;
}

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0 0 0 0)";
}

inputCenter : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[150 150]";
CIAttributeType = CIAttributeTypePosition;
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
}

CIFilter *filter = [CIFilter filterWithName:@"CIGaussianGradient"];

[filter setValue:[NSNumber numberWithFloat:200] forKey:@"inputRadius"];

[filter setValue:[CIColor colorWithCGColor:[UIColor grayColor].CGColor ]forKey:@"inputColor1"];

==============================================================

[Hard Light Blend Mode] CIHardLightBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Highlights and Shadows] CIHighlightShadowAdjust

inputHighlightAmount : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeIdentity = 1;
CIAttributeMax = 1;
CIAttributeMin = 0;
CIAttributeSliderMax = 1;
CIAttributeSliderMin = "0.3";
CIAttributeType = CIAttributeTypeScalar;
}

inputShadowAmount : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeMax = 1;
CIAttributeMin = "-1";
CIAttributeSliderMax = 1;
CIAttributeSliderMin = "-1";
CIAttributeType = CIAttributeTypeScalar;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIHighlightShadowAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:0.5] forKey:@"inputShadowAmount"];

CIFilter *filter = [CIFilter filterWithName:@"CIHighlightShadowAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:-0.5] forKey:@"inputShadowAmount"];

==============================================================

[Hue Adjust] CIHueAdjust

inputAngle : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeSliderMax = "3.141592653589793";
CIAttributeSliderMin = "-3.141592653589793";
CIAttributeType = CIAttributeTypeAngle;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIHueAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:1.5] forKey:@"inputAngle"];

==============================================================

[Lighten Blend Mode] CILightenBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Linear Gradient] CILinearGradient

inputPoint1 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[200 200]";
CIAttributeType = CIAttributeTypePosition;
}

inputPoint0 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 0]";
CIAttributeType = CIAttributeTypePosition;
}

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0 0 0 1)";
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
}

==============================================================

[Luminosity Blend Mode] CILuminosityBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Maximum] CIMaximumCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Minimum] CIMinimumCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Multiply Blend Mode] CIMultiplyBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Multiply] CIMultiplyCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Overlay Blend Mode] CIOverlayBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Radial Gradient] CIRadialGradient

inputRadius0 : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 5;
CIAttributeMin = 0;
CIAttributeSliderMax = 800;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeDistance;
}

inputRadius1 : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 100;
CIAttributeMin = 0;
CIAttributeSliderMax = 800;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeDistance;
}

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0 0 0 1)";
}

inputCenter : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[150 150]";
CIAttributeType = CIAttributeTypePosition;
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
}

[Saturation Blend Mode] CISaturationBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Screen Blend Mode] CIScreenBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Sepia Tone] CISepiaTone

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputIntensity : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeIdentity = 0;
CIAttributeMax = 1;
CIAttributeMin = 0;
CIAttributeSliderMax = 1;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeScalar;
}

CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:0.8] forKey:@"inputIntensity"];

==============================================================

[Soft Light Blend Mode] CISoftLightBlendMode

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Source Atop] CISourceAtopCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Source In] CISourceInCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Source Out] CISourceOutCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

[Source Over] CISourceOverCompositing

inputBackgroundImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

==============================================================

[Straighten] CIStraightenFilter

inputAngle : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeSliderMax = "3.141592653589793";
CIAttributeSliderMin = "-3.141592653589793";
CIAttributeType = CIAttributeTypeAngle;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIStraightenFilter"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:1.4] forKey:@"inputAngle"];

==============================================================

[Stripes Generator] CIStripesGenerator

inputSharpness : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeMax = 1;
CIAttributeMin = 0;
CIAttributeSliderMax = 1;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeScalar;
}

inputColor1 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(0 0 0 1)";
}

inputCenter : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[150 150]";
CIAttributeType = CIAttributeTypePosition;
}

inputWidth : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 80;
CIAttributeSliderMax = 800;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeDistance;
}

inputColor0 : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
}

==============================================================

[Temperature and Tint] CITemperatureAndTint ?

inputTargetNeutral : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[6500 0]";
CIAttributeIdentity = "[6500 0]";
CIAttributeType = CIAttributeTypeOffset;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputNeutral : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[6500 0]";
CIAttributeIdentity = "[6500 0]";
CIAttributeType = CIAttributeTypeOffset;
}

==============================================================

[Tone Curve] CIToneCurve

inputPoint1 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0.25 0.25]";
CIAttributeIdentity = "[0.25 0.25]";
CIAttributeType = CIAttributeTypeOffset;
}

inputPoint0 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0 0]";
CIAttributeIdentity = "[0 0]";
CIAttributeType = CIAttributeTypeOffset;
}

inputPoint3 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0.75 0.75]";
CIAttributeIdentity = "[0.75 0.75]";
CIAttributeType = CIAttributeTypeOffset;
}

inputPoint2 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[0.5 0.5]";
CIAttributeIdentity = "[0.5 0.5]";
CIAttributeType = CIAttributeTypeOffset;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputPoint4 : {
CIAttributeClass = CIVector;
CIAttributeDefault = "[1 1]";
CIAttributeIdentity = "[1 1]";
CIAttributeType = CIAttributeTypeOffset;
}

==============================================================

[Vibrance] CIVibrance

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputAmount : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeMax = 1;
CIAttributeMin = "-1";
CIAttributeSliderMax = 1;
CIAttributeSliderMin = "-1";
CIAttributeType = CIAttributeTypeScalar;
}

CIFilter *filter = [CIFilter filterWithName:@"CIVibrance"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[NSNumber numberWithFloat:1] forKey:@"inputAmount"];

==============================================================

[Vignette] CIVignette

inputRadius : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 1;
CIAttributeMax = 2;
CIAttributeMin = 0;
CIAttributeSliderMax = 2;
CIAttributeSliderMin = 0;
CIAttributeType = CIAttributeTypeScalar;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

inputIntensity : {
CIAttributeClass = NSNumber;
CIAttributeDefault = 0;
CIAttributeIdentity = 0;
CIAttributeMax = 1;
CIAttributeMin = "-1";
CIAttributeSliderMax = 1;
CIAttributeSliderMin = "-1";
CIAttributeType = CIAttributeTypeScalar;
}

==============================================================

[White Point Adjust] CIWhitePointAdjust

inputColor : {
CIAttributeClass = CIColor;
CIAttributeDefault = "(1 1 1 1)";
CIAttributeIdentity = "(1 1 1 1)";
CIAttributeType = CIAttributeTypeColor;
}

inputImage : {
CIAttributeClass = CIImage;
CIAttributeType = CIAttributeTypeImage;
}

CIFilter *filter = [CIFilter filterWithName:@"CIWhitePointAdjust"];

[filter setValue:inputImage forKey:@"inputImage"];

[filter setValue:[CIColor colorWithCGColor:[UIColor yellowColor].CGColor ]forKey:@"inputColor"];

cifilter 可视化,布布扣,bubuko.com

时间: 2024-10-21 14:09:37

cifilter 可视化的相关文章

Dynamics 365 for CRM: Sitemap站点图的可视化编辑功能

Dynamics 365 for CRM 提供了Sitemap站点图的可视化编辑功能 在之前的所有版本中,我们只能通过从系统中导出站点图的XML进行编辑后再导入(容易出错),或使用第三方的Sitemap编辑工具进行编辑(非常方便). 在Dynamics 365 for CRM 中原生地提供了站点图的可视化编辑功能,非常强大方便: 1.在默认解决方案或自定义解决方案的"客户端扩展"中,找到"站点地图"记录:如果没有则需要点击"添加现成",添加&qu

可视化HTML编辑器

[荐] 可视化HTML编辑器 CKEditor CKEditor是新一代的FCKeditor,是一个重新开发的版本.CKEditor是全球最优秀的网页在线文字编辑器之一,因其惊人的性能与可扩展性而广泛的被运用于各大网站. 可配合使用的扩展有 文件管理器KCFinder 在线演示:h...更多CKEditor信息 最新新闻: CKEditor 4.5.6 发布,可视化 HTML 编辑器 2015年12月10日 [荐] 可视化HTML编辑器 KindEditor KindEditor 是一套开源的在

地理数据可视化:Simple,Not Easy

如果要给2015年的地理信息行业打一个标签,地理大数据一定是其中之一.在信息技术飞速发展的今天,“大数据”作为一种潮流铺天盖地的席卷了各行各业,从央视的春运迁徙图到旅游热点预测,从大数据工程师奇货可居到马云布道“DT”时代,“大数据”被推到了一个前所未有的高度,连国家领导人出访演讲都言必称大数据.地理信息数据天生具有大数据属性,作为整天和地理信息数据打交道的地信人自然不甘落后,地理大数据概念脱颖而出. 地理大数据是什么?大体来说就是把社会经济.自然资源.商业信息等但凡具有一点空间维度的数据一股脑

可视化格式模型(visual formatting model)

对于可视化格式模型这个概念,官方的原话是这样的:How use agents process the document tree for visual media.翻译过来就是用户端在媒介中如何处理文档树.用户端这个对于我们来说通常指的就是浏览器.媒介呢,就是展示页面的介质,比如显示器.文档树呢,就是源文档中元素树的编码.树中,每一个元素恰好有一个父元素,当然除了根元素. 一.框的布局影响因素 可视化格式模型中,每一个文档树中得元素都会根据box module(盒模型)来产生零个或多个控制框.这

使用HTML5 API(AudioContext)实现可视化频谱效果

HTML5 可视化频谱效果 如今的HTML5技术正让网页变得越来越强大,通过其Canvas标签与AudioContext对象可以轻松实现之前在Flash或Native App中才能实现的频谱指示器的功能. Demo: Cyandev Works - HTML5 Audio Visualizing 开始使用AudioContext The AudioContext interface represents an audio-processing graph built from audio mod

Python - Seaborn可视化:图形个性化设置的几个小技巧

1 概述 在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置. 本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置.包括常用的设置,如: 设置图表显示颜色 设置图表标题,包括显示位置,字体大小,颜色等 设置x轴和y轴标题,包括颜色,字体大小 设置x轴和y轴刻度内容,包括颜色.字体大小.字体方向等 将x轴和y轴内容逆序显示 设置x轴或y轴显示位置 本文的运行环境: windows 7 python 3.5 jupyter notebook seaborn 0.

influxdb+grafana业务数据可视化

了解数据库的TPS.QPS是作为一个运维DBA是非常必要的,那什么是TPS.QPS呢,简单的理解是: QPS:每秒查询数,即对数据库每秒的DML的操作数 TPS:每秒事物处理,即对数据库每秒DDL操作数 通过了解他们,可以掌握一个实例的基本工作运行状态 如何对于对他们进行页面可视化,是DBA的一个装逼神器,本章主要介绍通过时序数据库(influxdb)+grafana+简单的python代码实现 时时监控它们,什么是时序数据库可以在其他章节了解,这里不做过多介绍 Let's go..... 1.

Eclipse可视化操作数据库

Eclipse可视化操作MySQL: 1.打开Data Source Explorer窗口. Eclipse > window > show view > other > Data management 选中Data Source Explorer点击OK,即可在当前页面打开. 2.配置数据库连接. 在Data Source Explorer窗口中点击Database Connection右键,点击new打开新窗口. 选择自己的数据库,点击next,进入下面这个界面(第一次会碰到,

数据可视化-gojs插件使用技巧总结

随着云计算时代的到来,由于Web技术的快速革新以及为了提供高质量的用户体验,数据可视化成为了前端技术发展的一大方向.为了解决这个问题,现如今涌现了很多优秀的第三方的javascript图形库,比如highcharts.js,echarts.js,d3.js,go.js- 数据可视化javascript插件对比 在HTML5标准支持下,web实现图形标准主要分为canvas和svg,上述的javascript图形库都是依赖2者之一作为底层库.Canvas基于像素,提供2D绘制函数,是一种HTML标