作者:侯少辉,LD 开发者,本文原载Linux Deepin 论坛
欢迎阅读 Cairo 绘图指南,这份指南会向你讲述 Cairo 二维矢量绘图库的基本知识以及一些高级问题。指南中的示例采用 C 语言实现,其中大部分使用了 GTK+ 库。(注 为了Python爱好者阅读方便,我把所有的例子使用Python重写)
二维矢量图形
计算机图形可分为两类,矢量图形与光栅图形。光栅图形是将图像表示为像素点集。矢量图形则是使用一些几何图元(点、直线、曲线、多边形等)表示图像,这些图元是使用数学公式生成的。
这两类计算机图形表达方式各有所长短。相较于光栅图形,矢量图形存在以下优越性:
■图形文件更小
■可任意缩放
■平移、缩放、填充或旋转等图形变换操作对图形质量无影响
Cairo
Cairo 是用于绘制二维矢量图形的库,采用 C 语言实现,又被许多其它计算机语言所绑定,譬如 Python、PERL、C++、C#、Java。Cairo 是跨平台库,可运行于 Linux、BSD、OSX 等操作系统。
Cairo 支持多种后端 (backend):
■X Window 系统
■Win32 GDI
■Mac OS X Quartz
■PNG
■PDF
■PostScript
■SVG
这些后端意味着可使用 Cairo 库在 Windows、Linux/BSD、OSX 等平台的窗口中绘图,也可以用于生成 PNG 图片、PDF/PostScript/SVG 文件。
与 Windows 操作系统的 GDI+ 以及 Mac OS 的 Quartz 2D 库相比,Cairo 是自由软件库。自 GTK+ 2.8 版本开始,Cairo 成为 GTK+ 库的一部分。