CoreImage Filters
Core Image Filter Example
Section titled “Core Image Filter Example”Objective-C
Just log this see how to use a particular filter
NSArray *properties = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
for (NSString *filterName in properties) { CIFilter *fltr = [CIFilter filterWithName:filterName]; NSLog(@"%@", [fltr attributes]); }In case of CISepiaTone the system log is as follows
CIAttributeFilterDisplayName = "Sepia Tone";CIAttributeFilterName = CISepiaTone; CIAttributeReferenceDocumentation = "http://developer.apple.com/cgi-bin/apple_ref.cgi?apple_ref=//apple_ref/doc/filter/ci/CISepiaTone"; inputImage = { CIAttributeClass = CIImage; CIAttributeDescription = "The image to use as an input image. For filters that also use a background image, this is the foreground image."; CIAttributeDisplayName = Image; CIAttributeType = CIAttributeTypeImage; }; inputIntensity = { CIAttributeClass = NSNumber; CIAttributeDefault = 1; CIAttributeDescription = "The intensity of the sepia effect. A value of 1.0 creates a monochrome sepia image. A value of 0.0 has no effect on the image."; CIAttributeDisplayName = Intensity; CIAttributeIdentity = 0; CIAttributeMin = 0; CIAttributeSliderMax = 1; CIAttributeSliderMin = 0; CIAttributeType = CIAttributeTypeScalar; };}Using the above system log we set up the filter as below:
CIImage *beginImage = [CIImage imageWithCGImage:[myImageView.image CGImage]]; CIContext *context = [CIContext contextWithOptions:nil]; //select Filter Name and Intensity CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone" keysAndValues: kCIInputImageKey, beginImage, @"inputIntensity", [NSNumber numberWithFloat:0.8], nil]; CIImage *outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; UIImage *newImg = [UIImage imageWithCGImage:cgimg];
[myImageView1 setImage:newImg];
CGImageRelease(cgimg);Image generated by the above code
An alternative way to set up a filter
UIImageView *imageView1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height/2)];UIImageView *imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height/2, self.view.frame.size.width, self.view.frame.size.height/2)];imageView1.image=[UIImage imageNamed:@"image.png"];
CIImage *beginImage = [CIImage imageWithCGImage:[imageView1.image CGImage]];CIContext *context = [CIContext contextWithOptions:nil];//select Filter Name and Intensity
CIFilter *filter = [CIFilter filterWithName:@"CIColorPosterize"];[filter setValue:beginImage forKey:kCIInputImageKey];[filter setValue:[NSNumber numberWithFloat:8.0] forKey:@"inputLevels"];CIImage *outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];UIImage *newImg = [UIImage imageWithCGImage:cgimg];
[imageView2 setImage:newImg];
CGImageRelease(cgimg);[self.view addSubview:imageView1];[self.view addSubview:imageView2];Image generated from this code
All Available Filters are as below
/* CIAccordionFoldTransition, CIAdditionCompositing, CIAffineClamp, CIAffineTile, CIAffineTransform, CIAreaAverage, CIAreaHistogram, CIAreaMaximum, CIAreaMaximumAlpha, CIAreaMinimum, CIAreaMinimumAlpha, CIAztecCodeGenerator, CIBarsSwipeTransition, CIBlendWithAlphaMask, CIBlendWithMask, CIBloom, CIBoxBlur, CIBumpDistortion, CIBumpDistortionLinear, CICheckerboardGenerator, CICircleSplashDistortion, CICircularScreen, CICircularWrap, CICMYKHalftone, CICode128BarcodeGenerator, CIColorBlendMode, CIColorBurnBlendMode, CIColorClamp, CIColorControls, CIColorCrossPolynomial, CIColorCube, CIColorCubeWithColorSpace, CIColorDodgeBlendMode, CIColorInvert, CIColorMap, CIColorMatrix, CIColorMonochrome, CIColorPolynomial, CIColorPosterize, CIColumnAverage, CIComicEffect, CIConstantColorGenerator, CIConvolution3X3, CIConvolution5X5, CIConvolution7X7, CIConvolution9Horizontal, CIConvolution9Vertical, CICopyMachineTransition, CICrop, CICrystallize, CIDarkenBlendMode, CIDepthOfField, CIDifferenceBlendMode, CIDiscBlur, CIDisintegrateWithMaskTransition, CIDisplacementDistortion, CIDissolveTransition, CIDivideBlendMode, CIDotScreen, CIDroste, CIEdges, CIEdgeWork, CIEightfoldReflectedTile, CIExclusionBlendMode, CIExposureAdjust, CIFalseColor, CIFlashTransition, CIFourfoldReflectedTile, CIFourfoldRotatedTile, CIFourfoldTranslatedTile, CIGammaAdjust, CIGaussianBlur, CIGaussianGradient, CIGlassDistortion, CIGlassLozenge, CIGlideReflectedTile, CIGloom, CIHardLightBlendMode, CIHatchedScreen, CIHeightFieldFromMask, CIHexagonalPixellate, CIHighlightShadowAdjust, CIHistogramDisplayFilter, CIHoleDistortion, CIHueAdjust, CIHueBlendMode, CIKaleidoscope, CILanczosScaleTransform, CILenticularHaloGenerator, CILightenBlendMode, CILightTunnel, CILinearBurnBlendMode, CILinearDodgeBlendMode, CILinearGradient, CILinearToSRGBToneCurve, CILineOverlay, CILineScreen, CILuminosityBlendMode, CIMaskedVariableBlur, CIMaskToAlpha, CIMaximumComponent, CIMaximumCompositing, CIMedianFilter, CIMinimumComponent, CIMinimumCompositing, CIModTransition, CIMotionBlur, CIMultiplyBlendMode, CIMultiplyCompositing, CINoiseReduction, CIOpTile, CIOverlayBlendMode, CIPageCurlTransition, CIPageCurlWithShadowTransition, CIParallelogramTile, CIPDF417BarcodeGenerator, CIPerspectiveCorrection, CIPerspectiveTile, CIPerspectiveTransform, CIPerspectiveTransformWithExtent, CIPhotoEffectChrome, CIPhotoEffectFade, CIPhotoEffectInstant, CIPhotoEffectMono, CIPhotoEffectNoir, CIPhotoEffectProcess, CIPhotoEffectTonal, CIPhotoEffectTransfer, CIPinchDistortion, CIPinLightBlendMode, CIPixellate, CIPointillize, CIQRCodeGenerator, CIRadialGradient, CIRandomGenerator, CIRippleTransition, CIRowAverage, CISaturationBlendMode, CIScreenBlendMode, CISepiaTone, CIShadedMaterial, CISharpenLuminance, CISixfoldReflectedTile, CISixfoldRotatedTile, CISmoothLinearGradient, CISoftLightBlendMode, CISourceAtopCompositing, CISourceInCompositing, CISourceOutCompositing, CISourceOverCompositing, CISpotColor, CISpotLight, CISRGBToneCurveToLinear, CIStarShineGenerator, CIStraightenFilter, CIStretchCrop, CIStripesGenerator, CISubtractBlendMode, CISunbeamsGenerator, CISwipeTransition, CITemperatureAndTint, CIToneCurve, CITorusLensDistortion, CITriangleKaleidoscope, CITriangleTile, CITwelvefoldReflectedTile, CITwirlDistortion, CIUnsharpMask, CIVibrance, CIVignette, CIVignetteEffect, CIVortexDistortion, CIWhitePointAdjust, CIZoomBlur*/

