ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# PyCairo 简介 > 原文: [https://zetcode.com/gfx/pycairo/introduction/](https://zetcode.com/gfx/pycairo/introduction/) 这是 PyCairo 教程。 本教程将使用 Python 语言教您 Cairo 2D 库的基础知识和一些高级主题。 在大多数示例中,我们将使用 Python GTK 后端生成我们的输出。 可以在此处下载本教程中使用的图像。 ## 计算机图像 有两种不同的计算机图形:矢量图形和栅格图形。 光栅图形将图像表示为像素集合。 矢量图形是使用几何图元(例如点,线,曲线或多边形)来表示图像。 这些基元是使用数学方程式创建的。 两种类型的计算机图形都有优点和缺点。 矢量图形优于栅格的优点是: * 较小的大小 * 无限放大的能力 * 移动,缩放,填充和旋转不会降低图像质量 ## Cairo Cairo 是用于创建 2D 矢量图形的库。 它是用 C 编程语言编写的。 存在其他计算机语言的绑定,包括 Python,Perl,C++ ,C# 或 Java。 Cairo 是一个多平台库; 它适用于 Linux,BSD,Windows 和 OSX。 Cairo 支持各种后端。 后端是用于显示创建的图形的输出设备。 * X Window 系统 * Win32 GDI * Mac OS X * PNG * PDF 格式 * PostScript * SVG 这意味着我们可以使用该库在 Windows,Linux,Windows,OSX 上进行绘制,并且可以使用该库创建 PNG 图像,PDF 文件,PostScript 文件和 SVG 文件。 我们可以将 Cairo 库与 Windows OS 上的 GDI+ 库和 Mac OS 上的 Quartz 2D 比较。 Cairo 是一个开源软件库。 从 2.8 版开始,Cairo 是 GTK 系统的一部分。 ## 定义 在这里,我们提供了一些有用的定义。 要在 PyCairo 中进行绘制,我们首先必须创建一个绘制上下文。 绘图上下文包含所有描述绘图方式的图形状态参数。 这包括诸如线宽,颜色,要绘制的表面以及许多其他信息。 它允许实际的绘图函数采用较少的参数来简化界面。 路径是用于创建基本形状(如直线,圆弧和曲线)的点的集合。 路径有两种:开放路径和封闭路径。 在封闭的路径中,起点和终点相遇。 在开放路径中,起点和终点不相交。 在 PyCairo 中,我们从空路径开始。 首先,我们定义一条路径,然后通过抚摸和/或填充它们使它们可见。 在每个`stroke()`或`fill()`方法调用之后,该路径将被清空。 我们必须定义一条新路径。 如果我们想保留现有路径以用于以后的绘图,则可以使用`stroke_preserve()`和`fill_preserve()`方法。 路径由子路径组成。 源是我们在绘图中使用的油漆。 我们可以将源与用来绘制轮廓和填充形状的钢笔或墨水进行比较。 有四种基本来源:颜色,渐变,图案和图像。 曲面是我们要绘制的目标。 我们可以使用 PDF 或 PostScript 曲面渲染文档,并通过 Xlib 和 Win32 曲面直接绘制到平台上。 在将源应用于表面之前,先对其进行过滤。 掩码用作过滤器。 它确定在哪里应用源,不在哪里应用。 遮罩的不透明部分允许复制源。 透明零件不允许将源复制到表面。 模式代表在表面上绘制时的光源。 在 PyCairo 中,图案是您可以读取的东西,用作绘制操作的源或蒙版。 图案可以是实心的,基于表面的或渐变的。 ## 数据来源 为了创建本教程,我们使用了以下材料。 [Apple Cocoa 制图指南](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Introduction/Introduction.html), [PyCairo 参考](http://cairographics.org/documentation/pycairo/2/index.html)和[Cairo 文档](http://cairographics.org/documentation/)。