iOS通过CIFilter对图像进行滤镜处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS通过CIFilter对图像进行滤镜处理相关的知识,希望对你有一定的参考价值。

ios5.0之后,苹果公司提供了可以对图像进行处理的CoreImage框架。

其中里面有一个CIFilter的滤镜,里面提供了非常强大的滤镜功能。本篇只是说其中部分的方法和使用。其他的功能还是去看下苹果的官方文档更为全面一些。同时,本文参考了该篇博客http://www.cnblogs.com/YouXianMing/p/3719056.html
这是主要的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//将UIImage转换成CIImage
CIImage *ciImage = [[CIImage alloc] initWithImage:originImage];
 
//创建滤镜
CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectChrome" 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]];
 
//获取图片
UIImage *image = [UIImage imageWithCGImage:cgImage];
 
//释放CGImage句柄
CGImageRelease(cgImage);
 
imageView.image = image;

这里我使用的滤镜效果是”CIPhotoEffectChrome”效果,当然,CIFilter的滤镜效果可是非常多的,这是官方文档的截图
技术分享
放个官方文档的网址https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CoreImageFilterReference/#//apple_ref/doc/filter/ci/CIMaskedVariableBlur

为了方便各个滤镜效果的对比,用了一个picker来选择滤镜
技术分享

奉上demo
CoreImage效果测试

 

本文出自 IT985博客 ,转载时请注明出处及相应链接。

以上是关于iOS通过CIFilter对图像进行滤镜处理的主要内容,如果未能解决你的问题,请参考以下文章

Swift核心图像对没有CIFilter的图像应用锐化

iOS常见滤镜实现总结

通过CoreImage生成二维码

iOS学习笔记9-Core Image

iOS滤镜 图片处理

iOS开发 - 二维码的生成与读取