https://developer.apple.com/library/content/documentation/GraphicsImaging/Reference/CoreImageFilterReference/#//apple_ref/doc/filter/ci/CIMaskedVariableBlur滤镜效果种类 官方文档快捷入口
//获取滤镜种类
NSArray *filterNames = [CIFilter filterNamesInCategory:@"CICategoryBuiltIn"]; NSLog(@"总共有%ld种滤镜效果:%@",filterNames.count,filterNames);
//滤镜效果
- (NSArray *)filterNames{
if (!_filterNames) {
_filterNames = [NSArrayarrayWithObjects:
@"CIPhotoEffectChrome",
@"CIPhotoEffectFade",
@"CIPhotoEffectInstant",
@"CIPhotoEffectMono",
@"CIPhotoEffectNoir",
@"CIPhotoEffectProcess",
@"CIPhotoEffectTonal",
@"CIPhotoEffectTransfer",
nil];
}
return_filterNames;
}}
/**
获取带滤镜效果的图片
@param filterName 滤镜效果
@param originImage 原图
@return 带滤镜的新图
*/
- (UIImage *)getNewImageFromFilterWithFilterName:(NSString *)filterName
originImage:(UIImage *)originImage
{
CIImage *ciImage =[[CIImagealloc]initWithImage:originImage];
//CIFilter 滤镜
CIFilter *filter = [CIFilterfilterWithName:filterNamekeysAndValues:kCIInputImageKey,ciImage,nil];
[filter setDefaults];
CIContext *context =[CIContextcontextWithOptions:nil];
CIImage *outputImage =[filteroutputImage];
CGImageRef cgImage =[contextcreateCGImage:outputImagefromRect:[outputImageextent]];
UIImage *image =[UIImageimageWithCGImage:cgImage];
CGImageRelease(cgImage);
return image;
}