现在的位置: 首页 > 综合 > 正文

What’s the difference between Quartz Core, Core Graphics and Quartz 2D?

2013年08月23日 ⁄ 综合 ⁄ 共 937字 ⁄ 字号 评论关闭

参考

[1]http://stackoverflow.com/questions/1877987/whats-the-difference-between-quartz-core-core-graphics-and-quartz-2d


 Quartz 2D 是Core Graphic 的一部分,Quartz是一组函数、数据类型以及对象,专门设计用于直接在内存中对视图或图像进行绘制。

The Quartz 2D API is part of the Core Graphics framework, so you may see Quartz referred to as Core Graphics
or, simply, CG.

Quartz Core 则是包含了处理动画Core Animation,图像、视频处理的接口。

This collection
of documents provides the API reference for the Quartz Core framework, which supports image processing and video image manipulation.

quartz默认的坐标原点在左下角,与UIView和UIWindow的坐标原点(左上角)不同。虽然Quartz使用的坐标系统不以左上角为原点,但是对于很多Quartz调用来说,这并不是问题。在调用视图的drawRect:方法之前,UIKit会自动对描画环境进行配置,使左上角成为坐标系统的原点,在这个环境中发生的Quartz调用都可以正确地在视图中描画。您唯一需要考虑不同坐标系统之间差别的场合是当您自行通过Quartz建立描画环境的时候。


重要提示:由于在位图或PDF上下文中进行描画时使用的是左下原点,所以在将描画结果渲染到视图上的时候,必须对坐标系统进行补偿。换句话说,如果您创建一个图像,并调用CGContextDrawImage函数来进行描画,则该图像在缺省情况下是上下颠倒的。为了纠正这个问题,您必须将CTM的y轴进行翻转(即将该值乘以-1),使其原点从左下角移动到视图的左上角。

如果使用UIImage对象来包装您所创建的CGImageRef类型,则不需要修改CTM。UIImage对象会自动对CGImageRef 类型的坐标系统进行翻转补偿。

抱歉!评论已关闭.