ios 滤镜处理(详细滤镜介绍)及处理方法

本文介绍了在iOS中进行滤镜处理的核心技术,包括导入CoreImage.framework框架,使用CIContext、CIImage和CIFilter类。通过CIFilter设置滤镜属性,实现图像的美颜和其他视觉效果。同时,探讨了语音识别的研究,并表达了希望获得音乐软件,特别是唱吧应用中人物情感识别技术的思路。
摘要由CSDN通过智能技术生成

**
首先你需要导入 CoreImage.framework 框架
然后我们先来看看3个主要的类:
CIContext:它与Core Graphics 和 OpenGL context类似,所有Core Image的处理流程都通过它来进行;
CIImage:它用来存放图片数据,可以通过UIImage,图片文件或像素数据创建;
CIFilter:通过它来定义过滤器的详细属性。
**

CIContext有两种初始化方法,分别对应GPU和CPU

 // 创建基于GPU的CIContext对象
 context = [CIContext contextWithEAGLContext: options:];

 // 创建基于CPU的CIContext对象
 //context = [CIContext contextWithOptions: [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
 forKey:kCIContextUseSoftwareRenderer]];

    一般采用第一种基于GPU的,因为效率要比CPU高很多,但是要注意的是基于GPU的CIContext对象无法跨应用访问。比如你打开UIImagePickerController要选张照片进行美化,如果你直接在UIImagePickerControllerDelegate的委托方法里调用CIContext对象进行处理,那么系统会自动将其降为基于CPU的,速度会变慢,所以正确的方法应该是在委托方法里先把照片保存下来,回到主类里再来处理
// 通过图片路径创建CIImage
 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
 NSURL *fileNameAndPath = [NSURL fileURLWithPath:filePath];
 beginImage = [CIImage imageWithContentsOfURL:fileNameAndPath];

 过滤周期就完成了,简单来说分以下几个步骤:
 1 初始化CIContext,CIImage
 2 初始化CIFilter并设置参数
 3 得到输出的图片
 4 将图片转化成能显示的UIImage类型
 如果想一张图片有多种过滤效果就需要重复23两步,并且要将上一个过滤器输出的图片作为下一个过滤器的参数

滤镜信息介绍

按效果分类:
 kCICategoryDistortionEffect 扭曲效果,比如bump、旋转、hole
 kCICategoryGeometryAdjustment 几何开着调整,比如仿射变换、平切、透视转换
 kCICategoryCompositeOperation 合并,比如源覆盖(source over)、最小化、源在顶(source atop)、色彩混合模式
 kCICategoryHalftoneEffect Halftone效果,比如screen、line screen、hatched
 kCICategoryColorAdjustment 色彩调整,比如伽马调整、白点调整、曝光
 kCICategoryColorEffect 色彩效果,比如色调调整、posterize
 kCICategoryTransition 图像间转换,比如dissolve、disintegrate with mask、swipe
 kCICategoryTileEffect 瓦片效果,比如parallelogram、triangle
 kCICategoryGenerator 图像生成器,比如stripes、constant color、checkerboard
 kCICategoryGradient 渐变,比如轴向渐变、仿射渐变、高斯渐变
 kCICategoryStylize 风格化,比如像素化、水晶化
 kCICategorySharpen 锐化、发光
 kCICategoryBlur 模糊,比如高斯模糊、焦点模糊、运动模糊
 按使用场景分类:
 kCICategoryStillImage 能用于静态图像
 kCICategoryVideo 能用于视频
 kCICategoryInterlaced 能用于交错图像
 kCICategoryNonSquarePixels 能用于非矩形像素
 kCICategoryHighDynamicRange 能用于HDR
 */

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值