UIImage是UIKIt框架中定义的图像类,其中封装了高层次图像类,可以通过多种方式创建这些对象。在Core Graphics框架(Quartz 2D)中也定义了CGImage,它表示位图图像,因为CGImage被封装起来了所以通常通过CGImageRef来使用CGImage。在Core Image框架中也有一个图像类CIImage,CIImage封装的图像类能够很好地进行图像效果处理,例如,滤镜的使用。UIImage、CGImage和CIImage之间可以互相转化,这个过程中需要注意内存释放问题,特别是CGImage和UIImage之间转化,涉及从C变量到Objective-C对象转化,如果这里使用了ARC技术,反而会使内存释放问题更复杂。
Core Image框架
创建一个图像:
+ emptyImage
+ imageWithColor:
+ imageWithBitmapData:bytesPerRow:size:format:colorSpace:
+ imageWithCGImage://静态创建方法,通过CGImageRef创建图像对象。
+ imageWithCGImage:options:
+ imageWithContentsOfURL://静态创建方法,通过文件路径创建图像对象。
+ imageWithContentsOfURL:options:
+ imageWithCVPixelBuffer:
+ imageWithCVPixelBuffer:options:
+ imageWithData://静态创建对象,通过内存中NSData对象创建图像对象。
+ imageWithData:options:
+ imageWithTexture:size:flipped:colorSpace:
通过修改一个现有的图像创建一个图像:
- imageByApplyingFilter:withInputParameters:
- imageByApplyingTransform:
- imageByCroppingToRect:
- imageByApplyingOrientation:
- imageByClampingToExtent
- imageByCompositingOverImage:
初始化一个图像:
- initWithColor:
- initWithBitmapData:bytesPerRow:size:format:colorSpace:
- initWithCGImage://构造方法,通过CGImageRef创建图像对象。
- initWithCGImage:options:
- initWithImage:
- initWithImage:options:
- initWithContentsOfURL://构造方法,通过文件路径创建图像对象。
- initWithContentsOfURL:options:
- initWithCVPixelBuffer:
- initWithCVPixelBuffer:options:
- initWithData://构造方法,通过内存中NSData对象创建图像对象。
- initWithData:options:
- initWithTexture:size:flipped:colorSpace:
coreimage framework 组成
主要分为三部分:
1)定义部分:CoreImage 何CoreImageDefines。见名思义,代表了CoreImage 这个框架和它的定义。
2)操作部分:
滤镜(CIFliter):CIFilter 产生一个CIImage。典型的,接受一到多的图片作为输入,经过一些过滤操作,产生指定输出的图片。
检测(CIDetector):CIDetector 检测处理图片的特性,如使用来检测图片中人脸的眼睛、嘴巴、等等。
特征(CIFeature):CIFeature 代表由 detector处理后产生的特征。
3)图像部分:
画布(CIContext):画布类可被用与处理Quartz 2D 或者 OpenGL。可以用它来关联CoreImage类。如滤镜、颜色等渲染处理。
颜色(CIColor): 图片的关联与画布、图片像素颜色的处理。
向量(CIVector): 图片的坐标向量等几何方法处理。
图片(CIImage): 代表一个图像,可代表关联后输出的图像。
NSArray *filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]; //获取系统滤镜列表
网友评论