首页 > 学院 > 开发设计 > 正文

使用CoreImage教程CoreImage包含有很多实用的滤镜,专业处理图片的库

2019-11-09 17:17:27
字体:
来源:转载
供稿:网友

转自:http://www.cnblogs.com/YouXianMing/p/3719056.html

使用CoreImage教程

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

 

现在可以开始教程了:

 代码片段

 代码片段

效果如下:

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

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",

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

 

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

 

 

福利:

Core Image Filter Reference

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

CICategoryBlur

CIBoxBlurCIDiscBlurCIGaussianBlurCIMedianFilterCIMotionBlurCINoiseReductionCIZoomBlur

CICategoryColorAdjustment

CIColorClampCIColorControlsCIColorMatrixCIColorPolynomialCIExposureAdjustCIGammaAdjustCIHueAdjustCILinearToSRGBToneCurveCISRGBToneCurveToLinearCITemperatureAndTintCIToneCurveCIVibranceCIWhitePointAdjust

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

CIColorCrossPolynomialCIColorCubeCIColorCubeWithColorSpaceCIColorInvertCIColorMapCIColorMonochromeCIColorPosterizeCIFalseColorCIMaskToAlphaCIMaximumComponentCIMinimumComponentCIPhotoEffectChromeCIPhotoEffectFadeCIPhotoEffectInstantCIPhotoEffectMonoCIPhotoEffectNoirCIPhotoEffectProcessCIPhotoEffectTonalCIPhotoEffectTransferCISepiaToneCIVignetteCIVignetteEffect

CICategoryCompositeOperation

CIAdditionCompositingCIColorBlendModeCIColorBurnBlendModeCIColorDodgeBlendModeCIDarkenBlendModeCIDifferenceBlendModeCIExclusionBlendModeCIHardLightBlendModeCIHueBlendModeCILightenBlendModeCILuminosityBlendModeCIMaximumCompositingCIMinimumCompositingCIMultiplyBlendModeCIMultiplyCompositingCIOverlayBlendModeCISaturationBlendModeCIScreenBlendModeCISoftLightBlendModeCISourceAtopCompositingCISourceInCompositingCISourceOutCompositingCISourceOverCompositing

CICategoryDistortionEffect

CIBumpDistortionCIBumpDistortionLinearCICircleSplashDistortionCICircularWrapCIDrosteCIDisplacementDistortionCIGlassDistortionCIGlassLozengeCIHoleDistortionCILightTunnelCIPinchDistortionCIStretchCropCITorusLensDistortionCITwirlDistortionCIVortexDistortion

CICategoryGenerator

CICheckerboardGeneratorCIConstantColorGeneratorCILenticularHaloGeneratorCIQRCodeGeneratorCIRandomGeneratorCIStarShineGeneratorCIStripesGeneratorCISunbeamsGenerator

CICategoryGeometryAdjustment

CIAffineTransformCICropCILanczosScaleTransformCIPerspectiveTransformCIPerspectiveTransformWithExtentCIStraightenFilter

CICategoryGradient

CIGaussianGradientCILinearGradientCIRadialGradientCISmoothLinearGradient

CICategoryHalftoneEffect

CICircularScreenCICMYKHalftoneCIDotScreenCIHatchedScreenCILineScreen

CICategoryReduction

CIAreaAverageCIAreaHistogramCIRowAverageCIColumnAverageCIHistogramDisplayFilterCIAreaMaximumCIAreaMinimumCIAreaMaximumAlphaCIAreaMinimumAlpha

CICategorySharpen

CISharpenLuminanceCIUnsharpMask

CICategoryStylize

CIBlendWithAlphaMaskCIBlendWithMaskCIBloomCIComicEffectCIConvolution3X3CIConvolution5X5CIConvolution7X7CIConvolution9HorizontalCIConvolution9VerticalCICrystallizeCIDepthOfFieldCIEdgesCIEdgeWorkCIGloomCIHeightFieldFromMaskCIHexagonalPixellateCIHighlightShadowAdjustCILineOverlayCIPixellateCIPointillizeCIShadedMaterialCISpotColorCISpotLight

CICategoryTileEffect

CIAffineClampCIAffineTileCIEightfoldReflectedTileCIFourfoldReflectedTileCIFourfoldRotatedTileCIFourfoldTranslatedTileCIGlideReflectedTileCIKaleidoscopeCIOpTileCIParallelogramTileCIPerspectiveTileCISixfoldReflectedTileCISixfoldRotatedTileCITriangleKaleidoscopeCITriangleTileCITwelvefoldReflectedTile

CICategoryTransition

CIBarsswipeTransitionCICopyMachineTransitionCIDisintegrateWithMaskTransitionCIDissolveTransitionCIFlashTransitionCIModTransitionCIPageCurlTransitionCIPageCurlWithShadowTransitionCIRippleTransitionCISwipeTransition

 

标签: iOS


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表