iphone - Quartz Core、Core Graphics 和 Quartz 2D 之间有什么区别?

标签 iphone core-graphics quartz-graphics quartz-2d

不知道有人能准确区分这两者吗? 据我了解,Core Graphics只是一个“框架包”,其中包含Quartz Core和Quartz 2D。但我不确定 Quartz 2D 是否真的是 Quartz Core?也许有人可以在那里画一些线?它们之间的差异是什么?

在查看文档时,我看到 Quartz Core 仅列出了所有核心动画内容。那么 Quartz Core == Core Animation?

最佳答案

Quartz 2D是Core Graphics框架的一个API,用于实现绘图。
Quartz Core 是一个框架,包含用于动画和图像处理的 API。

<小时/>

Quartz 框架及其 API

CoreGraphics.framework

  • Quartz 2D API管理图形上下文并实现绘图。
  • Quartz Services API 提供对窗口服务器的低级访问。这包括显示硬件、分辨率、刷新率等。

QuartzCore.framework

  • Core Animation : Objective-C API 来做 2D 动画。
  • Core Image :图像和视频处理(滤镜、扭曲、过渡)。iOS 5

Quartz.framework仅限 OS X

所有三个框架都在底层使用 OpenGL,因为 iOS 或 OS X 中的所有绘图都会在某些时候通过 OpenGL。请参阅Media Layer Frameworks部分Mac OS X 技术概述的详细信息。

您可能听说过的其他“Quartz”技术:

  • Quartz Extreme:Quartz Composer 的 GPU 加速。
  • QuartzGL(又名“Quartz 2D Extreme”):Quartz 2D 的 GPU 加速。

这些是 GPU 渲染的内部实现,而不是 API。他们决定是在 CPU 中创建窗口缓冲区并仅使用 OpenGL 作为纹理上传(默认),还是使用 OpenGL 进行整个渲染,这 not always improves performance 。您可以使用QuartzGLEnable在两者之间交替。 Info.plist 设置。有关说明,请参阅 John Siracusa 对 Mac OS X 10.4 Tiger 的评论,第 13 页和 14 .

“Quartz”和“Core”是随机散布在框架和 API 上的营销名称。如果他们想制造一个令人困惑的命名困惑,他们就成功了。

关于iphone - Quartz Core、Core Graphics 和 Quartz 2D 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1877987/

相关文章:

iphone - 使用 NSString + stringWithContentsOfFile :usedEncoding:error:

iphone - 在 iPhone 中将图像文本转换为其他语言

ios - 无法构建模块

cocoa - CIFilter/CIKernel 中的最大图像大小?

iphone - Quartz 2D drawRect 方法(iPhone)

iPhone Quartz - 从其他类调用绘图方法

iOS 在形状中心绘制文本

iPhone - 使用 CGContext 绘制一些文本 : ok but. .. 镜像

cocoa - 用于 View 和 PDF 生成的通用 CoreGraphics 绘图代码应该放在哪里?

iphone - UINavigationBar 纹理背景