属于Core Graphics(使用Quartz 进行2D渲染,处理基于路径的绘图、抗锯齿渲染、渐变、图像、颜色管理、pdf文档等。 说白了就是2D绘图 渲染功能)框架.
我们平时用的其实都是他的引用类型 CGContextRef
同时也发现,CGContext是一个结构体,而并不是一个Object。CGContextRef是一个指向CGContext结构体的指针。
CGContext 可以看做是一个2D 作图的画布。 而iOS 有多种画布,这些画布都以堆栈的形式存放。(只有最上面的那个context才有效,有push pop的概念)
CIContext 属于Core Image框架(文档中提到 主要的功能就是 用内置或自定义的过滤器处理图片和视频 以及 在视频图片中检测面部和眼睛子类的特征和跟踪面部。和Core Graphics的主要区别 就是更注重于视频图片的加工处理)的,是一个OC对象。一般和 CIImage,CIColor,CIFilter等交互。
从上面,可以发现。这两个context 都是画布的意思,相似的地方非常多,而且可以互相关联。只是所属的库不同,在用法上有些区别。
还有一个,就是CIImage 只有经过context 转化为CGImage后,才能变成位图图片。(非位图图片,不能保存到相册,不能转换为NSData (jpeg png))
Original: https://www.cnblogs.com/Free-Thinker/p/15740363.html
Author: brave-sailor
Title: CGContext 和 CIContext
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/545722/
转载文章受原作者版权保护。转载请注明原作者出处!