`

Quartz 2D 概览(参考苹果官网)

阅读更多

介绍一下Quartz 2D,主要资料来源于苹果官网;不足之处有请大家拍砖。

Quartz 2D是iPhone OS和Mac OS X环境下的二维绘图引擎。借用Quartz 2D API,你可以接触到这样一些特性:基于路径的绘图,透明度绘图,遮盖,阴影,透明层,颜色管理,防锯齿渲染,生成PDF,以及PDF元数据相关处理。可能的时候,Quartz 2D会借助硬件的力量。

在Mac OS X下,Quartz 2D能与其它图形图像技术相结合——Core Image,Core Video,OpenGL,以及Quick Time。

类似的,在iPhone OS下的Quartz 2D也能与其它的图像和动画技术相结合——Core Animation,OpenGL ES,以及UIKit类。


1. 页面(Page)

Quartz 2D使用画笔模型——每一个绘图操作在一块输出画布上进行一层绘制(paint),这个画布就叫做页面。绘制在页面上的东西无法改动,除非修改该页面。

下图显示了“后来者居上”的遮盖顺序。页面可以是一张真正的纸(如果输出设备是打印机);可以是一张虚拟的纸(如果输出设备是pdf);甚至可以是一幅位图。

painters_model.gif


2. 绘制目标:图形内容(Graphics Context)


图形内容是一个复杂的数据类型(CGContextRef),用于封装Quartz用于绘图的信息。这些信息包括了绘图参数以及页面上的绘图的代表。


同一幅画可以绘制到不同的设备上,而只需要改变图形内容的,无需改变Quartz绘制顺序。你不需要自行针对设备进行计算——Quartz会替你完成这一切。

 


draw_destinations.gif


3. Quartz 2D的模糊数据类型(Opaque Data Type)

在图形内容之外,Quartz 2D还定义了一系列模糊数据类型,均以CG为前缀。其中三种数据类型如下图所示。

 


drawing_primitives.gif


4. 图形状态(Graphics States)

Quartz 2D根据当前的图形状态来修改绘图结果。例如,当你调用函数来填充颜色时,你同时也就修改了储存在图形状态中的数值。其它常用的图形状态颜色包括线宽,当前位置,以及字体大小。


图形内容包含了一个堆栈,储存了图形状态。初建图形内容时,此堆栈为空。图形状态可以通过函数 CGContextSaveGState 和 CGContextRestoreGState 来保存和恢复。


5.Quartz 2D坐标

Quartz 2D的坐标体系如下图所示,原点在左下方。


quartz_coordinates.gif


考虑到不同的设备有着不同的图像能力,因此图形的位置和大小必需独立于设备来定义——这由当前变换矩阵(CTM)来完成。


6. 内存管理

几个简单实用的准则:

6.1 如果你创建或复制一个对象,该对象的retain值会加一;因此你也必需释放它。具体反映在带有Create或Copy的函数名当中。

6.2 反之,如果函数名中没有Create或Copy,你就不需要释放。

6.3 如果你不拥有一个对象但需要使用它,你可以retain之后再释放

分享到:
评论

相关推荐

    Quartz 2D编程指南

    《Quartz 2D编程指南》一文详细介绍了Quartz 2D这一核心绘图引擎在iOS和其他Apple平台上的应用及特性。Quartz 2D是Apple提供的底层绘图API,用于创建高质量的二维图形,它不仅适用于iOS,还广泛应用于macOS、watchOS...

    4个案例:Quartz2D图片处理

    Quartz2D是苹果操作系统内核中的一个二维图形渲染引擎,它为开发者提供了一套强大的API,用于在iOS和macOS平台上进行低级的图形绘制和图像处理。本篇文章将通过四个具体的案例来深入理解Quartz2D在图片处理方面的...

    Quartz2D的基本使用

    Quartz2D是苹果操作系统(包括macOS和iOS)中的一个强大的2D图形绘制框架,它允许开发者创建高质量的矢量图形、文本和图像。在本文中,我们将深入探讨Quartz2D的基本使用,了解其核心概念和常用API,以及如何在实际...

    Quartz 2D编程指南 官方文档翻译

    Quartz 2D是苹果公司开发的一个先进的二维绘图引擎,它的API在iOS、tvOS和macOS的应用程序开发中广泛使用。Quartz 2D的主要特点包括其低级轻量级的二维渲染能力,无与伦比的输出保真度,以及独立于分辨率和设备的...

    Programming with Quartz 2D and PDF Graphics in MacOS

    Quartz 2D是苹果公司为MacOS开发的一个高性能、功能丰富的2D图形处理框架。它不仅适用于MacOS平台,也被广泛应用于iOS设备上。Quartz 2D提供了一系列强大的API,支持高级图像处理任务,如路径绘制、图像渲染、PDF...

    Quartz 2D Programming Guide

    - **Quartz 2D** 是苹果公司在Mac OS X和iOS操作系统中提供的一套图形处理框架,它允许开发者创建复杂的二维图形。Quartz 2D 提供了一系列的功能,包括矢量图形绘制、图像处理、PDF文档生成等。 #### 二、核心概念 ...

    Quartz2D动画Demo

    Quartz2D是苹果iOS和Mac OS X操作系统中用于图形绘制和动画的一种强大的技术,它基于Core Graphics框架。在这个"Quartz2D动画Demo"中,我们将会探讨如何利用Quartz2D来创建动态视觉效果,这对于iOS应用的用户体验...

    Programming with Quartz 2D and PDF Graphics in Mac OS X

    总之,《使用Quartz 2D与PDF图形在Mac OS X编程》这本书深入浅出地介绍了如何在Mac平台上使用Quartz 2D进行高效且美观的图形编程,不仅适合Mac OS X的开发者,对于其他平台的程序员来说也具有很高的参考价值。

    Quartz 2D编程指南(1)

    ### Quartz 2D编程指南(1) - 概览 #### 一、Quartz 2D简介 Quartz 2D 是苹果公司提供的一套强大的二维图形绘制引擎,广泛应用于 iOS 和 macOS 平台。它为开发者提供了丰富的 API 接口,支持多种图形绘制和图像处理...

    quartz2D绘图代码(使用路径)

    Quartz 2D是苹果操作系统中的核心图形库,用于在iOS和macOS平台上进行低级2D绘图。它提供了一套丰富的API,允许开发者直接控制像素级别的绘图,实现精细的图形渲染。在Quartz 2D中,路径(CGPath)是一个强大的工具...

    Quartz2D图形刷新和定时器

    Quartz2D是苹果操作系统中的一个强大的2D图形绘制框架,它允许开发者创建高质量的图形、图像和文本。在iOS和macOS应用开发中,Quartz2D被广泛用于实现自定义视图、动画和图形界面。本篇将深入探讨Quartz2D图形的刷新...

    ios Quartz 2D编程指南

    ios Quartz 2D编程指南 2d图形处理

    Quartz2D的各种图形的绘制

    Quartz2D是苹果操作系统(包括iOS和macOS)中的核心图形库,它提供了一套强大的2D绘图API,允许开发者创建出高质量、高分辨率的图像和图形。本教程将深入探讨Quartz2D的基本概念,以及如何利用它来绘制各种形状。 ...

    Quartz 2D programing 翻译

    Quartz 2D是苹果公司为其iOS和Mac OS X操作系统开发的一个2D图形绘制引擎。它提供了一套底层而轻量级的API接口,允许开发者在不同输出设备上生成逼真的图形效果,同时保持与设备和分辨率的无关性。这意味着开发者...

    Quartz 2D Demo @appleDev

    Quartz 2D是Apple开发的一种二维图形渲染技术,它为iOS和macOS平台提供了强大的图形绘制能力。在“Quartz 2D Demo @appleDev”这个项目中,我们可以深入理解并学习到如何利用Apple的Quartz 2D API来创建高质量、高...

    Quartz 2D编程指南(英文完整版+中文部分翻译版)

    Quartz 2D是苹果平台上的2D图形绘制框架,用于在iOS和Mac OS系统上进行高质量的图形渲染。这份编程指南提供了丰富的信息,帮助开发者深入理解并掌握Quartz 2D的使用方法。以下是对Quartz 2D编程指南中的关键知识点的...

    Quartz 2D Programming Guide 2007

    Quartz 2D是苹果公司开发的一个强大的二维图形渲染引擎,它被广泛应用于Mac OS X和iOS操作系统中,为开发者提供了高效、灵活的图形绘制能力。"Quartz 2D Programming Guide 2007"是一份详尽的文档,旨在帮助开发者...

    Quartz2D使用案例

    Quartz2D是苹果平台上的一个强大的2D图形渲染框架,它被广泛应用于iOS和macOS应用程序开发中,用于创建高质量的图形、图像处理和动画。这个“Quartz2D使用案例”代码库提供了一些实用的示例,帮助开发者更好地理解和...

    Quartz2D基础绘画

    Quartz2D是苹果操作系统(包括iOS和macOS)中的一种强大的2D图形绘制框架,它为开发者提供了底层的绘图能力,可以用来创建复杂的图形、图像处理和文本布局。在Quartz2D中,我们可以利用其丰富的API来实现自定义的...

Global site tag (gtag.js) - Google Analytics