跳转至

PyCairo 简介

原文: 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 制图指南PyCairo 参考Cairo 文档



回到顶部