对图片进行处理的简易的API-CIFilter
CIFilterCategory 图片处理方式,在CIFiler中是如何对这么多的图片处理方式进行归类的呢?苹果采用的是Category的形式。比如图片亮度、对比度、饱和度等颜色处理都属于CICategoryColorAdjustment,图片模糊处理对应CICategoryBlur,图片锐化则对应CICategorySharpen。CIFilterName 在图片处理中,除了大的种类划分之外,每一种类还有对应的不同处理方式,比如CICategoryBlur可以分为CIBoxblur、CIDiscblur、 CIGaussianBlur、CIMotionBlur、CIZoomBlur等。attributes 要想对图片进行某一种处理,必须要调节对应属性的属性值,对于CIFilter来讲也就是filter对象的attributes。每一个CIFiler对象都包含attributes属性,并且其中相应的值在一定的区间内是可变动的,以此来作为图片对应属性处理的参数。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
CICategoryBlurCIBoxBlurCIDiscBlurCIGaussianBlurCIMedianFilterCIMotionBlurCINoiseReductionCIZoomBlurCICategoryColorAdjustmentCIColorControlsCIColorMatrixCIExposureAdjustCIGammaAdjustCIHueAdjustCITemperatureAndTintCIToneCurveCIVibranceCIWhitePointAdjustCICategoryColorEffectCIColorCubeCIColorInvertCIColorMapCIColorMonochromeCIColorPosterizeCIFalseColorCIMaskToAlphaCIMaximumComponentCIMinimumComponentCISepiaToneCICategoryCompositeOperationCIAdditionCompositingCIColorBlendModeCIColorBurnBlendModeCIColorDodgeBlendModeCIDarkenBlendModeCIDifferenceBlendModeCIExclusionBlendModeCIHardLightBlendModeCIHueBlendModeCILightenBlendModeCILuminosityBlendModeCIMaximumCompositingCIMinimumCompositingCIMultiplyBlendModeCIMultiplyCompositingCIOverlayBlendModeCISaturationBlendModeCIScreenBlendModeCISoftLightBlendModeCISourceAtopCompositingCISourceInCompositingCISourceOutCompositingCISourceOverCompositingCICategoryDistortionEffectCIBumpDistortionCIBumpDistortionLinearCICircleSplashDistortionCICircularWrapCIDisplacementDistortionCIGlassDistortionCIGlassLozengeCIHoleDistortionCIPinchDistortionCITorusLensDistortionCITwirlDistortionCIVortexDistortionCICategoryGeneratorCICheckerboardGeneratorCIConstantColorGeneratorCILenticularHaloGeneratorCIRandomGeneratorCIStarShineGeneratorCIStripesGeneratorCISunbeamsGeneratorCICategoryGeometryAdjustmentCIAffineTransformCICropCILanczosScaleTransformCIPerspectiveTransformCIStraightenFilterCICategoryGradientCIGaussianGradientCILinearGradientCIRadialGradientCICategoryHalftoneEffectCICircularScreenCICMYKHalftoneCIDotScreenCIHatchedScreenCILineScreenCICategoryReductionCIAreaAverageCIAreaHistogramCIRowAverageCIColumnAverageCIAreaMaximumCIAreaMinimumCIAreaMaximumAlphaCIAreaMinimumAlphaCICategorySharpenCISharpenLuminanceCIUnsharpMaskCICategoryStylizeCIBlendWithMaskCIBloomCIComicEffectCICrystallizeCIEdgesCIEdgeWorkCIGloomCIHeightFieldFromMaskCIHexagonalPixellateCIHighlightShadowAdjustCILineOverlayCIPixellateCIPointillizeCIShadedMaterialCISpotColorCISpotLightCICategoryTileEffectCIAffineClampCIAffineTileCIEightfoldReflectedTileCIFourfoldReflectedTileCIFourfoldRotatedTileCIFourfoldTranslatedTileCIGlideReflectedTileCIKaleidoscopeCIOpTileCIParallelogramTileCIPerspectiveTileCISixfoldReflectedTileCISixfoldRotatedTileCITriangleTileCITwelvefoldReflectedTileCICategoryTransitionCIBarsswipeTransitionCICopyMachineTransitionCIDisintegrateWithMaskTransitionCIDissolveTransitionCIFlashTransitionCIModTransitionCIPageCurlTransitionCIRippleTransition[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"];==============================================================
新闻热点
疑难解答