在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
本文出自 ,转载时请注明出处及相应链接。