CIFilter滤镜

来源:互联网 发布:男大学生必备鞋子知乎 编辑:程序博客网 时间:2024/05/16 00:58

对图片进行处理的简易的API-CIFilter

  1. CIFilterCategory
    图片处理方式,在CIFiler中是如何对这么多的图片处理方式进行归类的呢?苹果采用的是Category的形式。比如图片亮度、对比度、饱和度等颜色处理都属于CICategoryColorAdjustment,图片模糊处理对应CICategoryBlur,图片锐化则对应CICategorySharpen。
  2. CIFilterName
    在图片处理中,除了大的种类划分之外,每一种类还有对应的不同处理方式,比如CICategoryBlur可以分为CIBoxblur、CIDiscblur、 CIGaussianBlur、CIMotionBlur、CIZoomBlur等。
  3. attributes
    要想对图片进行某一种处理,必须要调节对应属性的属性值,对于CIFilter来讲也就是filter对象的attributes。每一个CIFiler对象都包含attributes属性,并且其中相应的值在一定的区间内是可变动的,以此来作为图片对应属性处理的参数。
  4. inputImage && outputImage
    使用CIFilter对图片进行处理,CIFliter对象相当于设置了一系列参数的过滤器,将原始图片输入,输出使用相应参数处理后的图片。

常见的CIFilterName:

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            //白平衡调节

官方文档中列表:
图片处理方式CIFilterCategory与各个方式下对应的CIFilterName

  • CICategoryBlur
CIBoxBlurCIDiscBlurCIGaussianBlurCIMedianFilterCIMotionBlurCINoiseReductionCIZoomBlur
  • CICategoryColorAdjustment
CIColorControlsCIColorMatrixCIExposureAdjustCIGammaAdjustCIHueAdjustCITemperatureAndTintCIToneCurveCIVibranceCIWhitePointAdjust
  • CICategoryColorEffect
CIColorCubeCIColorInvertCIColorMapCIColorMonochromeCIColorPosterizeCIFalseColorCIMaskToAlphaCIMaximumComponentCIMinimumComponentCISepiaTone
  • CICategoryCompositeOperation
CIAdditionCompositingCIColorBlendModeCIColorBurnBlendModeCIColorDodgeBlendModeCIDarkenBlendModeCIDifferenceBlendModeCIExclusionBlendModeCIHardLightBlendModeCIHueBlendModeCILightenBlendModeCILuminosityBlendModeCIMaximumCompositingCIMinimumCompositingCIMultiplyBlendModeCIMultiplyCompositingCIOverlayBlendModeCISaturationBlendModeCIScreenBlendModeCISoftLightBlendModeCISourceAtopCompositingCISourceInCompositingCISourceOutCompositingCISourceOverCompositing
  • CICategoryDistortionEffect
CIBumpDistortionCIBumpDistortionLinearCICircleSplashDistortionCICircularWrapCIDisplacementDistortionCIGlassDistortionCIGlassLozengeCIHoleDistortionCIPinchDistortionCITorusLensDistortionCITwirlDistortionCIVortexDistortion
  • CICategoryGenerator
CICheckerboardGeneratorCIConstantColorGeneratorCILenticularHaloGeneratorCIRandomGeneratorCIStarShineGeneratorCIStripesGeneratorCISunbeamsGenerator
  • CICategoryGeometryAdjustment
CIAffineTransformCICropCILanczosScaleTransformCIPerspectiveTransformCIStraightenFilter
  • CICategoryGradient
CIGaussianGradientCILinearGradientCIRadialGradient
  • CICategoryHalftoneEffect
CICircularScreenCICMYKHalftoneCIDotScreenCIHatchedScreenCILineScreen
  • CICategoryReduction
CIAreaAverageCIAreaHistogramCIRowAverageCIColumnAverageCIAreaMaximumCIAreaMinimumCIAreaMaximumAlphaCIAreaMinimumAlpha
  • CICategorySharpen
CISharpenLuminanceCIUnsharpMask
  • CICategoryStylize
CIBlendWithMaskCIBloomCIComicEffectCICrystallizeCIEdgesCIEdgeWorkCIGloomCIHeightFieldFromMaskCIHexagonalPixellateCIHighlightShadowAdjustCILineOverlayCIPixellateCIPointillizeCIShadedMaterialCISpotColorCISpotLight
  • CICategoryTileEffect
CIAffineClampCIAffineTileCIEightfoldReflectedTileCIFourfoldReflectedTileCIFourfoldRotatedTileCIFourfoldTranslatedTileCIGlideReflectedTileCIKaleidoscopeCIOpTileCIParallelogramTileCIPerspectiveTileCISixfoldReflectedTileCISixfoldRotatedTileCITriangleTileCITwelvefoldReflectedTile
  • CICategoryTransition
CIBarsSwipeTransitionCICopyMachineTransitionCIDisintegrateWithMaskTransitionCIDissolveTransitionCIFlashTransitionCIModTransitionCIPageCurlTransitionCIRippleTransition

CIFilterName与各个attributions:

CISwipeTransition

[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 = ;}

==============================================================
[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"];

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

0 0