cairo :cairo

更新时间:2024-09-21 03:33

Cairo(Cairo)是一个开源的2D图形库,支持多种输出设备,提供了一种矢量图形基础的、设备无关的API,供软件开发者使用。Cairo支持在多个背景下的二维空间绘图,使用硬件加速功能时效果更好。虽然Cairo使用c语言编写,但通过使用Cairo,还可以使用C++、C#、Java、PythonPerlRubySchemesmalltalk等多种语言进行编程。Cairo遵循GNU较宽松公共许可证和Mozilla公共许可证两种授权条款。

历史沿革

基思·帕卡德和卡尔·沃思为在X Window系统使用创立了cairo项目。它原本(直到2003年)被称做Xr或Xr/Xc。为了加强跨平台而非被局限在X Window平台绘图的印象,项目更换了名称。Xr经被解释为希腊字母chi和rho派生出新名称cairo。

功能介绍

Cairo是一个功能强大的2D图形库,它允许开发者在多种不同的后端上进行图形渲染,包括X Window系统、Quartz、win32、image.buffers、PostScript、PDF和SVG文件输出。此外,Cairo还支持OpenGL、XCB、BeOS、OS/2操作系统和DirectFB等后端,尽管BeOS、OS/2和DirectFB后端在2022年被取消。Cairo的目的是提供一致的输出效果,无论是在哪种输出媒体上,同时能利用硬件加速器。

Cairo的主要优点在于它统一了在X、Win32、Quartz等基础上的图形库操作方式,并支持PS、PDF、SVG、PNG/JPEG等图像格式的输出,这使得页面的再次利用变得方便。在glitz的支持下,Cairo甚至支持部分3D效果。Cairo的许可协议为GNU Lesser General Public License (LGPL) version 2.1 或者 the Mozilla Public License (MPL) version 1.1。

后端

Cairo支持很多不同后端的输出,在实现中被称作“surface”。支持的后端包括X Window系统、Win32 GDI、Quartz Compositor、OS/2,OpenGL环境(直接或间接地通过glitz)、内存缓冲区、PNG、PDF、PostScriptDirectFB和SVG文件。

还有一些开发中的后端如:OpenVG,Qt,Skia和Windows Direct2D。

绘图模型

Cairo 绘图模型依赖于三层模型。

任何绘图过程都分三个步骤进行:

这构成了与可扩展矢量图形(SVG)根本不同的方法,后者使用层叠样式表(CSS) 规则指定形状的颜色。Cairo 会创建形状的蒙版,然后为其创建源,然后将它们传输到表面上,而 SVG 文件将简单地使用属性来指定形状style。也就是说,这些模型并不是不兼容的,而是相互兼容的。许多 SVG 渲染器使用 Cairo 来完成繁重的工作。

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: