使用CoreImage教程

使用CoreImage教程

使用CoreImage教程_第1张图片

CoreImage包含有很多实用的滤镜,专业处理图片的库,为了能看到各种渲染效果,请使用如下图片素材.

使用CoreImage教程_第2张图片

 

现在可以开始教程了:

使用CoreImage教程_第3张图片

  代码片段

使用CoreImage教程_第4张图片

  代码片段

使用CoreImage教程_第5张图片

效果如下:

使用CoreImage教程_第6张图片

我们对操作进行简易的封装:

CIFilterEffect.h + CIFilterEffect.m

复制代码
//
//  CIFilterEffect.h
//  CIFilter
//
//  Created by YouXianMing on 14-5-9.
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface CIFilterEffect : NSObject

@property (nonatomic, strong, readonly) UIImage *result;

- (instancetype)initWithImage:(UIImage *)image filterName:(NSString *)name;

@end
复制代码
复制代码
//
//  CIFilterEffect.m
//  CIFilter
//
//  Created by YouXianMing on 14-5-9.
//  Copyright (c) 2014年 Y.X. All rights reserved.
//

#import "CIFilterEffect.h"

@interface CIFilterEffect ()

@property (nonatomic, strong, readwrite) UIImage *result;

@end

@implementation CIFilterEffect

- (instancetype)initWithImage:(UIImage *)image filterName:(NSString *)name
{
    self = [super init];
    if (self)
    {
        // 将UIImage转换成CIImage
        CIImage *ciImage = [[CIImage alloc] initWithImage:image];
        
        // 创建滤镜
        CIFilter *filter = [CIFilter filterWithName:name
                                      keysAndValues:kCIInputImageKey, ciImage, nil];
        [filter setDefaults];
        
        // 获取绘制上下文
        CIContext *context = [CIContext contextWithOptions:nil];
        
        // 渲染并输出CIImage
        CIImage *outputImage = [filter outputImage];
        
        // 创建CGImage句柄
        CGImageRef cgImage = [context createCGImage:outputImage
                                           fromRect:[outputImage extent]];
        
        _result = [UIImage imageWithCGImage:cgImage];
        
        // 释放CGImage句柄
        CGImageRelease(cgImage);
    }
    return self;
}

@end
复制代码

我们来开始尝试其他的滤镜效果,我们可以尝试的至少有这些:

@"CILinearToSRGBToneCurve",
@"CIPhotoEffectChrome",
@"CIPhotoEffectFade",
@"CIPhotoEffectInstant",
@"CIPhotoEffectMono",
@"CIPhotoEffectNoir",
@"CIPhotoEffectProcess",
@"CIPhotoEffectTonal",
@"CIPhotoEffectTransfer",
@"CISRGBToneCurveToLinear",
@"CIVignetteEffect",

使用CoreImage教程_第7张图片

下面是所有渲染出来的图片,与上面提供的滤镜名字一一对应:

使用CoreImage教程_第8张图片使用CoreImage教程_第9张图片

使用CoreImage教程_第10张图片使用CoreImage教程_第11张图片

使用CoreImage教程_第12张图片使用CoreImage教程_第13张图片

使用CoreImage教程_第14张图片使用CoreImage教程_第15张图片

 

以下效果是需要进行一些配置才能达到的效果,这个就不开源了,你懂得:).

使用CoreImage教程_第16张图片使用CoreImage教程_第17张图片

使用CoreImage教程_第18张图片使用CoreImage教程_第19张图片

使用CoreImage教程_第20张图片

 

 

福利:

Core Image Filter Reference

https://developer.apple.com/library/ios/documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html

CICategoryBlur

  • CIBoxBlur
  • CIDiscBlur
  • CIGaussianBlur
  • CIMedianFilter
  • CIMotionBlur
  • CINoiseReduction
  • CIZoomBlur

CICategoryColorAdjustment

  • CIColorClamp
  • CIColorControls
  • CIColorMatrix
  • CIColorPolynomial
  • CIExposureAdjust
  • CIGammaAdjust
  • CIHueAdjust
  • CILinearToSRGBToneCurve
  • CISRGBToneCurveToLinear
  • CITemperatureAndTint
  • CIToneCurve
  • CIVibrance
  • CIWhitePointAdjust

CICategoryColorEffect(我们刚刚用到的一些效果在这里哦)

  • CIColorCrossPolynomial
  • CIColorCube
  • CIColorCubeWithColorSpace
  • CIColorInvert
  • CIColorMap
  • CIColorMonochrome
  • CIColorPosterize
  • CIFalseColor
  • CIMaskToAlpha
  • CIMaximumComponent
  • CIMinimumComponent
  • CIPhotoEffectChrome
  • CIPhotoEffectFade
  • CIPhotoEffectInstant
  • CIPhotoEffectMono
  • CIPhotoEffectNoir
  • CIPhotoEffectProcess
  • CIPhotoEffectTonal
  • CIPhotoEffectTransfer
  • CISepiaTone
  • CIVignette
  • CIVignetteEffect

CICategoryCompositeOperation

  • CIAdditionCompositing
  • CIColorBlendMode
  • CIColorBurnBlendMode
  • CIColorDodgeBlendMode
  • CIDarkenBlendMode
  • CIDifferenceBlendMode
  • CIExclusionBlendMode
  • CIHardLightBlendMode
  • CIHueBlendMode
  • CILightenBlendMode
  • CILuminosityBlendMode
  • CIMaximumCompositing
  • CIMinimumCompositing
  • CIMultiplyBlendMode
  • CIMultiplyCompositing
  • CIOverlayBlendMode
  • CISaturationBlendMode
  • CIScreenBlendMode
  • CISoftLightBlendMode
  • CISourceAtopCompositing
  • CISourceInCompositing
  • CISourceOutCompositing
  • CISourceOverCompositing

CICategoryDistortionEffect

  • CIBumpDistortion
  • CIBumpDistortionLinear
  • CICircleSplashDistortion
  • CICircularWrap
  • CIDroste
  • CIDisplacementDistortion
  • CIGlassDistortion
  • CIGlassLozenge
  • CIHoleDistortion
  • CILightTunnel
  • CIPinchDistortion
  • CIStretchCrop
  • CITorusLensDistortion
  • CITwirlDistortion
  • CIVortexDistortion

CICategoryGenerator

  • CICheckerboardGenerator
  • CIConstantColorGenerator
  • CILenticularHaloGenerator
  • CIQRCodeGenerator
  • CIRandomGenerator
  • CIStarShineGenerator
  • CIStripesGenerator
  • CISunbeamsGenerator

CICategoryGeometryAdjustment

  • CIAffineTransform
  • CICrop
  • CILanczosScaleTransform
  • CIPerspectiveTransform
  • CIPerspectiveTransformWithExtent
  • CIStraightenFilter

CICategoryGradient

  • CIGaussianGradient
  • CILinearGradient
  • CIRadialGradient
  • CISmoothLinearGradient

CICategoryHalftoneEffect

  • CICircularScreen
  • CICMYKHalftone
  • CIDotScreen
  • CIHatchedScreen
  • CILineScreen

CICategoryReduction

  • CIAreaAverage
  • CIAreaHistogram
  • CIRowAverage
  • CIColumnAverage
  • CIHistogramDisplayFilter
  • CIAreaMaximum
  • CIAreaMinimum
  • CIAreaMaximumAlpha
  • CIAreaMinimumAlpha

CICategorySharpen

  • CISharpenLuminance
  • CIUnsharpMask

CICategoryStylize

  • CIBlendWithAlphaMask
  • CIBlendWithMask
  • CIBloom
  • CIComicEffect
  • CIConvolution3X3
  • CIConvolution5X5
  • CIConvolution7X7
  • CIConvolution9Horizontal
  • CIConvolution9Vertical
  • CICrystallize
  • CIDepthOfField
  • CIEdges
  • CIEdgeWork
  • CIGloom
  • CIHeightFieldFromMask
  • CIHexagonalPixellate
  • CIHighlightShadowAdjust
  • CILineOverlay
  • CIPixellate
  • CIPointillize
  • CIShadedMaterial
  • CISpotColor
  • CISpotLight

CICategoryTileEffect

  • CIAffineClamp
  • CIAffineTile
  • CIEightfoldReflectedTile
  • CIFourfoldReflectedTile
  • CIFourfoldRotatedTile
  • CIFourfoldTranslatedTile
  • CIGlideReflectedTile
  • CIKaleidoscope
  • CIOpTile
  • CIParallelogramTile
  • CIPerspectiveTile
  • CISixfoldReflectedTile
  • CISixfoldRotatedTile
  • CITriangleKaleidoscope
  • CITriangleTile
  • CITwelvefoldReflectedTile

CICategoryTransition

  • CIBarsSwipeTransition
  • CICopyMachineTransition
  • CIDisintegrateWithMaskTransition
  • CIDissolveTransition
  • CIFlashTransition
  • CIModTransition
  • CIPageCurlTransition
  • CIPageCurlWithShadowTransition
  • CIRippleTransition
  • CISwipeTransition

你可能感兴趣的:(使用CoreImage教程)