首页 > 代码库 > <图形图像,动画,多媒体> 读书笔记 --- 图像处理
<图形图像,动画,多媒体> 读书笔记 --- 图像处理
为了便于操作图像iOS中定义图像类,UIImage是UIKit框架中定义的图像类,其封装了高层次图像类,可以通过多种方式创建这些对象.在Core Graphics框架(或Quartz 2D)中也定义了CGImage,他表示位图图像,因为CGImage被封装起来了,所以通常通过CGImageRef来使用CGImage.
除了UIImage和CGImage外,在Core Image框架中也有一个图像类 CIImage,CIImage封装了图像类能够很好地进行图像效果处理.例如,滤镜的使用.UIImage,CGImage和CIImage之间可以互相转化,涉及从C到OC对象转化,如果这里使用ARC技术,要注意内存释放问题.
Core Image 框架
Core Image是图像处理中非常重要的框架,Core Image用来实时的处理和分析图像,他能处理来自于Core Graphics,Core Video,and Image I/O 等框架的数据类型.并使用CPU或GPU进行渲染,Core Image能够屏蔽很多低层次的技术细节,如OpenGL ES 和 GCD等技术
Core Image 框架中有以下几个非常重要的类
CIImage , Core Image框架中的图像类
CIContext,上下文对象,所有图像处理都在一个CIContext中完成,通过Quartz 2D和OpenGL渲染CIImage对象
CIFilter,滤镜类包含一个字典结构,对各种滤镜定义了属于各自的属性
CIDetector,面部识别类,借助于CIFaceFeature可以识别嘴和眼睛的位置
在Core Image框架中最常用的是CIImage类,有一些构造方法和静态创建方法
+ (CIImage *)imageWithCGImage:(CGImageRef)image; //静态创建方法,通过CGImageRef创建图像对象 + (CIImage *)imageWithContentsOfURL:(NSURL *)url; //静态创建方法,通过文件路径创建图像对象 + (CIImage *)imageWithData:(NSData *)data; //静态创建方法,通过内存中NSData对象创建图像对象 - (id)initWithCGImage:(CGImageRef)image; //构造方法,通过内存中CGImageRef对象创建图像对象 - (id)initWithData:(NSData *)data; //构造方法,通过内存中NSData对象创建图像对象 - (id)initWithContentsOfURL:(NSURL *)url; //构造方法,通过文件路径对象创建图像对象
CIContext *context = [CIContext contextWithOptions:nil];//创建上下文 CIImage *cImage = [CIImage imageWithCGImage:[_image CGImage]]; CIImage *result; CIFilter *sepiaTone = [CIFilter filterWithName: @"CISepiaTone"];//创建滤镜 [sepiaTone setValue: cImage forKey: @"inputImage"]; double value = http://www.mamicode.com/[_slider value];>
<图形图像,动画,多媒体> 读书笔记 --- 图像处理