首页 > 代码库 > <图形图像,动画,多媒体> 读书笔记 --- 图像处理

<图形图像,动画,多媒体> 读书笔记 --- 图像处理

为了便于操作图像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];>


<图形图像,动画,多媒体> 读书笔记 --- 图像处理