原作者 | 基思·帕卡德、卡尔·沃思[1] |
---|---|
开发者 | 卡尔·沃思、贝赫达德·埃斯法赫博德 |
稳定版本 | 1.16.0(2018年10月19日[2])[±] |
编程语言 | C语言 |
操作系统 | 跨平台 |
类型 | 图形库 |
许可协议 | GNU宽通用公共许可证版本2.1或是Mozilla公共许可证版本1.1 |
Cairo(西柔)是一个让用于提供向量图形绘图的自由函数库,cairo提供在多个背景下做二维空间的绘图,进阶的更可以使用硬体加速功能[3]。虽然西柔是使用C语言撰写的,但是当使用cairo时,可以用许多其他种语言来使用,包括有C++、C#、Java、Python、Perl、Ruby、Scheme、Smalltalk以及许多种语言[4],cairo在GNU较宽松公共许可证与Mozilla公共许可证两种许可证下发行。
后端
Cairo支持很多不同后端的输出,在实现中被称作“surface”。支持的后端包括X Window系统、Win32 GDI、Quartz Compositor、OS/2,OpenGL环境(直接或间接地通过glitz)、内存缓冲区、PNG、PDF、PostScript、DirectFB和SVG文件。
还有一些开发中的后端如:OpenVG,Qt,Skia和Windows Direct2D。[5]
知名应用
因为能够提供高级的跨平台2D绘图的支持,cairo在开源社区十分流行。
- GTK+从2005年的2.8版开始,使用cairo去渲染它的大多数控件,从GTK+ 3开始,所有的渲染任务由cairo完成。
- Mono项目,包括Moonlight,在很早便设想用cairo作为后端驱动GDI+(libgdiplus)和 System.Drawing命名空间。
- Mozilla项目在最近版本的Gecko排版引擎中使用cairo,用来渲染生成的图形输出。
- Poppler库使用cairo渲染PDF文档. cairo使得对反锯齿矢量图形和透明对象的绘制成为可能。
- 矢量绘图应用程序Inkscape使用cairo图形库显示其概要模式,以及自从0.46正式版使用它输出PDF和PostScript文档。
- FontForge在2008年10月中旬启用cairo为默其认渲染图形库。
- R语言经cairo用PDF,PostScript和SVG格式输出图像。
- Gnuplot 4.4现在使用cairo来渲染PDF和PNG输出。
历史
基思·帕卡德和卡尔·沃思为在X Window系统使用创立了cairo项目[6]。它原本(直到2003年)被称做Xr或Xr/Xc。为了加强跨平台而非被局限在X Window平台绘图的印象,项目更换了名称。Xr经被解释为希腊字母chi和rho派生出新名称cairo。
相似的技术
Cairo大抵相似于微软的WPF和GDI+、苹果公司的Quartz 2D、Anti-Grain Geometry(AGG)。
相关条目
参考资料
- ↑ Carl's boring web pages. cworth.org. 2013 [11 July 2014].
- ↑ Latest cairo news. [2018-10-19].
- ↑ Cairo homepage. [2010-10-30].
- ↑ Cairo Language Bindings. [2014-04-16].
- ↑ Bas Schouten. Direct2D: Hardware Rendering a Browser. 2009-11-22 [2010-02-12].
- ↑ Xr: Cross-device Rendering for Vector Graphics. [2009-06-08].