关于quartz2d,核心graphics,核心animation,核心图像混淆

我正在一个项目,需要一些image processing,我也问了一些关于它的问题,我得到了很好的解决scheme,这里是链接在iOS中创build全新的图像,通过select不同的属性

但现在我想更详细地了解这一点,我很困惑从哪里开始学习石英2D或核心animation或核心graphics或核心图像

苹果文件对于石英2d说

Quartz 2D API是Core Graphics框架的一部分,所以你可能会看到Quartz被称为Core Graphics或简称CG。

和苹果文档说核心graphics

核心graphics框架是一个基于C的API,基于Quartz高级绘图引擎。

这是混淆他们如何相互关联…

现在核心animation包含坐标,边界,框架等所有的概念,这也是绘制图像所需要的

核心图像在ios 5中引入

从哪里开始学习,或者我从哪里开始学习所有这些。

石英和核心graphics是有效的同义词。 我倾向于避免使用“石英”,因为这个术语很容易混淆(事实上,包括核心animation在内的框架是“QuartzCore”,进一步混淆了事实)。

我会说:

  • 如果您需要高性能的vector绘图(线条,矩形,圆圈,文本等),可能通过简单的修改(例如缩放,旋转,边框等)与位图/光栅graphics混合,请学习Core GraphicsCore Graphics )。 核心graphics不是特别适合更高级的位图操作(例如色彩校正)。 它可以在位图/光栅操作方面做很多事情,但并不总是那么明显或直接。 总之,Core Graphics最适合“Illustrator / Freehand / OmniGraffle”types的用途。

  • 学习Core Animation (在QuartzCore.framework内),如果你需要animation内容。 核心animation(如移动屏幕周围的视图)可以完全没有核心animation,使用基本的UIViewfunction,但如果你想做更有趣的animation,核心animation是你的朋友。 核心animation有些不直观,也是CALayer系列类的家园,除了可以animation之外,还可以做一些更有趣的事情,比如快速(尽pipeperformance不佳)视图阴影和3D变换(给你可能想到的作为“穷人的OpenGL”)。 但它主要用于animation内容(或内容属性,如颜色和不透明度)。

  • 如果您需要高性能,像素精确的image processing,请学习Core Image (在QuartzCore.framework内部)。 这可能是从颜色校正到镜头光晕到模糊以及其间的任何事情。 Apple发布了一个filter引用 ,枚举了可用的各种预先构build的Core Imagefilter。 你也可以写你自己的,虽然这不一定是心灰意冷。 总之,如果你需要实现类似“[select你最喜欢的照片编辑器]filter”,那么Core Image就是你的select。

这是否澄清事项?

核心animation是一项技术,更多地依赖于OpenGL,这意味着它的GPU绑定。

核心graphics另一方面使用CPU进行渲染。 它比Core Animation更精确(像素),但会使用你的CPU。