對圖片進行處理的簡易的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"];==============================================================
新聞熱點
疑難解答