关于quartz2d,核心图形,核心动画,核心图像的混淆

时间:2012-02-12 11:50:26

标签: ios

我正在开展一个需要一些图像处理的项目,我也问了一些关于它的问题,我在这里得到了很好的解决方案是链接create whole new image in iOS by selecting different properties

但现在我想更详细地了解这一点,我很困惑,我应该从哪里开始学习石英2d或核心动画或核心图形或核心图像

苹果文件说关于石英2d

  

Quartz 2D API是Core Graphics框架的一部分,所以你可以   请参阅Quartz称为Core Graphics,或简称CG。

和apple docs谈到核心图形

  

Core Graphics框架是一个基于C语言的API,它基于   Quartz高级绘图引擎。

这令人困惑,他们彼此之间的关系......

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

和核心图像在ios 5中引入

我应该从哪里开始学习,或者我从哪个序列开始学习所有这些。

2 个答案:

答案 0 :(得分:50)

Quartz和Core Graphics实际上是同义词。我倾向于避免使用" Quartz"因为这个术语非常容易混淆(实际上,包含Core Animation 的框架是" QuartzCore,"令人困惑的事情)。

我会说:

  • 如果您需要高性能矢量绘图(线条,矩形,圆形,文本等),可以学习Core Graphics(CoreGraphics.framework),也许可以通过简单的修改(例如缩放)与位图/光栅图形混合,旋转,边界等)。核心图形不是特别适合更高级的位图操作(例如颜色校正)。 可以在位图/光栅操作方面做很多事情,但它并不总是显而易见或直截了当。简而言之,Core Graphics最适合" Illustrator / Freehand / OmniGraffle"类型用途。

  • 了解Core Animation(QuartzCore.framework内部)是否需要为内容制作动画。使用基本的UIView功能,基本动画(例如在屏幕上移动视图)可以完全不使用Core Animation,但如果你想做更高级的动画,Core Animation就是你的朋友。有点不直观的是,Core Animation也是CALayer系列课程的所在地,除了可动画之外,还可以让你做一些更有趣的事情,比如快速(尽管表现不佳)的视角和3D变换(给你一些可能的想法)作为"穷人的OpenGL")。但它主要用于动画内容(或内容属性,如颜色和不透明度)。

  • 如果您需要高性能,像素精确的图像处理,请了解Core Image(QuartzCore.framework内部)。这可能是从色彩校正到镜头光晕到模糊以及介于两者之间的任何事物。 Apple发布了a filter reference,其中列出了可用的各种预构建的Core Image过滤器。你也可以写自己的,虽然这对于胆小的人来说并不是必然的。简而言之,如果你需要实现类似" [选择你最喜欢的照片编辑器]过滤器"然后Core Image就是您的首选。

这是否澄清了问题?

答案 1 :(得分:3)

Core Animation是一种依赖OpenGL的技术,这意味着它受GPU限制。

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