apple 已经帮咱们把image的处理分类好,来看看它的结构:app
主要分为三部分:框架
1)定义部分:CoreImage 何CoreImageDefines。见名思义,表明了CoreImage 这个框架和它的定义。spa
2)操做部分:3d
滤镜(CIFliter):CIFilter 产生一个CIImage。典型的,接受一到多的图片做为输入,通过一些过滤操做,产生指定输出的图片。blog
检测(CIDetector):CIDetector 检测处理图片的特性,如使用来检测图片中人脸的眼睛、嘴巴、等等。图片
特征(CIFeature):CIFeature 表明由 detector处理后产生的特征。ci
3)图像部分:input
画布(CIContext):画布类可被用与处理Quartz 2D 或者 OpenGL。能够用它来关联CoreImage类。如滤镜、颜色等渲染处理。it
颜色(CIColor): 图片的关联与画布、图片像素颜色的处理。io
向量(CIVector): 图片的坐标向量等几何方法处理。
图片(CIImage): 表明一个图像,可表明关联后输出的图像。
2. 处理步骤:
1)create a ciimage object;
2) create a cifilter object and set input values
3) create a cicontext object.
4) render the filter output image into a cgimage
3.注意
a。关注Ciimage 产生的途径:
1)经过URL和Data
2)经过其余图片类转换,CGImageRef或其余图片。
3)经过CVpixelBufferRef。
4)一组像素Data。
b. 图片颜色,KCCImageColorSpace 来重载默认颜色空间。
c. 图片Metadata。
4. 使用滤镜。
CISepiaTone、CiColorControls、CIHueBlendMode。
处理过程:多个CImage输入 -- 》 CIHeBlendMode --》 CiSepiatone。
渲染输出:
流程: 获取context -》 转成CIimage -》 渲染成CGImageRef -》 转换为UIimage -》 释放 CGImageRef -》 使用UIImage。
5.脸部检测
自动加强: CIRedEyeCorrection 、CIFaceBalance(调整图片来给出更好的皮肤色调)、CIVibrance(在不扭曲皮肤色调的状况下,增长饱和度)、CIToneCurve(调整图片对比)、高亮阴影调整。