版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.09.27 |
前言
quartz
是一个通用的术语,用于描述在iOS
和MAC OS X
中整个媒体层用到的多种技术 包括图形、动画、音频、适配。Quart 2D
是一组二维绘图和渲染API
,Core Graphic
会使用到这组API
,Quartz Core
专指Core Animation
用到的动画相关的库、API
和类。CoreGraphics
是UIKit
下的主要绘图系统,频繁的用于绘制自定义视图。Core Graphics
是高度集成于UIView
和其他UIKit
部分的。Core Graphics
数据结构和函数可以通过前缀CG
来识别。在app中很多时候绘图等操作我们要利用CoreGraphic
框架,它能绘制字符串、图形、渐变色等等,是一个很强大的工具。感兴趣的可以看我另外几篇。
1. CoreGraphic框架解析(一)—— 基本概览
2. CoreGraphic框架解析(二)—— 基本使用
3. CoreGraphic框架解析(三)—— 类波浪线的实现
CoreGraphic基本架构
利用Quartz技术的强大功能,以高保真度输出进行轻量级2D渲染。 处理基于路径的绘图,抗锯齿渲染,渐变,图像,颜色管理,PDF文档等。
Core Graphics
框架基于Quartz高级绘图引擎。 它提供具有无与伦比的输出保真度的低级,轻量级2D渲染。 您可以使用此框架来处理基于路径的绘图,转换,颜色管理,屏幕外渲染,模式,渐变和阴影,图像数据管理,图像创建和图像屏蔽,以及PDF文档创建,显示和解析。
在MacOS中,Core Graphics
还包括用于处理显示硬件,低级用户输入事件和窗口系统的服务。
下面我们就看一下CoreGraphic
API的基本架构,如下图所示。
框架功能模块
下面按照框架的功能模块进行区分和分解。
1. Opaque Types
-
- 一种
CGContextRef
类型,可用于将位绘制到内存。
- 一种
-
- 一组定义颜色的组件,具有指定如何解释它们的颜色空间。
-
- 描述如何在颜色空间之间转换以供其他系统服务使用的对象。
-
CGColorSpace
- 指定如何解释显示颜色值的配置文件。
-
CGContext
- Quartz 2D 绘图的地方,或者你也可以想象成画板。
-
CGDataConsumer
- 数据写入任务的抽象,无需管理原始内存缓冲区。
-
CGDataProvider
- 数据读取任务的抽象,无需管理原始内存缓冲区。
-
CGFont
- 用于绘制文本的一组字符字形和布局信息。
-
CGFunction
- 定义和使用回调函数的通用工具。
-
CGGLContext
- 已过时。 一种用于绘制
OpenGL
内容的CGContextRef
类型。
- 已过时。 一种用于绘制
-
CGGradient
- 用于绘制径向和轴向梯度填充的颜色之间平滑过渡的定义。
-
CGImage
- 位图图像或图像掩码。
-
CGLayer
- 用于重新使用Core Graphics绘制内容的离屏上下文。
-
CGPath
- 用于图形路径的不变和可变类型:在图形上下文中绘制的形状或线条的数学描述。
-
CGPattern
- 用于绘制图形路径的2D图案。
-
CGPDFArray
- PDF文档中的数组结构。
-
CGPDFContentStream
- PDF页面中一个或多个内容数据流的表示。
-
CGPDFContext
- 一种用于绘制PDF内容的CGContextRef类型。
-
CGPDFDictionary
- PDF文档中的字典结构。
-
CGPDFDocument
- 包含PDF(便携式文件格式)绘制信息的文档。
-
CGPDFObject
- 表示PDF文档内容的对象。
-
CGPDFOperatorTable
- 用于在PDF文档中扫描内容时使用的运算符的一组回调函数。
-
CGPDFPage
- PDF文档中的页面。
-
CGPDFScanner
- 用于处理PDF内容流中的内容和操作符的解析器对象。
-
CGPDFStream
- PDF文档中的数据流或数据字节序列。
-
CGPDFString
- PDF文档中的文本字符串。
-
CGPSConverter
- 将
PostScript
数据转换为PDF数据的对象。
- 将
-
CGShading
- 用于绘制径向和轴向渐变填充的由您提供的自定义函数控制的颜色之间的平滑过渡的定义。
2. Services
-
Quartz Display Services
- 提供对macOS窗口服务器中功能的直接访问,以配置和控制显示硬件。
-
Quartz Event Services
- 提供管理事件点击过滤器的功能,用于观察和更改macOS中的低级用户输入事件流。
-
Quartz Window Services
- 提供有关由macOS窗口服务器管理的窗口的信息。
3. Reference
-
CGAffineTransform
- 用于绘制2D图形的仿射变换矩阵。
-
- 2D几何图元的各种结构和相关功能。
后记
未完,待续 ~~~~