cairo(2D图形库)

cairo(2D图形库)Cairo 是一个跨平台的 2D 图形库 支持多种输出设备如 X Windows Win32 和 PDF

大家好,欢迎来到IT知识分享网。

介绍

cairo是一款开源的2d矢量图形库,它支持包括X-Windos,Win32,图像,pdf在内的各种输出设备。支持多种后端输出,cairo是用C编写的,但是为大多数常用的语言提供了绑定,qt和Python也支持。本文主要是在Ubuntu里面进行开发,未使用qt工具。

下载安装

sudo apt-get install libcairo2-dev 

cairo的基本模型和概念

1、表面(surface)
Surface是Cair绘图的目标区域,在Cairo中使用cairo_surface_t表示,我们绘图的目标区域可以是一张png的图像,一个pdf文件不同目标的绘制,底层实现也各不相同,而surfac对这些绘图的目标进行了一个抽象,所以我们在创建了相应的surface之后,只需要调用统一的函数对surface进行绘制即可。
2、源(source)
指的是我们绘图具体的材料和格式,包括画笔的粗细、颜色等等。source不光可以是笔的颜色,也可以是一种图案(patter)比如渐变色,甚至可以是一个表面(surface)。
3、遮盖(mask)
Mask相当于我们在绘图过程中,用一张挖空了某些部分的纸遮挡在画布上,这样,在绘图过程中,只有挖空的部分会被我们所使用的源影响到,其余部分不受影响。
4、路径(path)
path是指cairo的绘制表面上一些虚拟的路径,可能是一条线段、一个闭合的四边形、或者是更加复杂的曲线,path可以由cairo的函数所创建(verb),但是由于path只是虚拟的路径,所以对path的创建并不代表对表面绘制,我们需要使用绘制函数进行绘制,比如我们可以通过cairo_rectangle函数创建一个闭合的长方形路径,然后通过cairo函数进行填充。
5、上下文(context)
context是cairo的核心结构,在cairo中使用cairo_t来表示,它记录了当前状态下,与绘制有关的各种信息,包括之前介绍的表面、源、遮盖、字体等,在任何绘制之前,我们都必须先创建一个cair_t结构,同时将它绑定到绘制表面上,下面代码创建了一个cairo_t,并绑定到一个640×480的png图像

cairo_surface_t *surface; cairo_t *cr; surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 640, 480); cr = cairo_create (surface); 

5、函数(verb)
cairo中与绘制相关的函数被称为verb,目前cairo支持五种绘制函数:画线(stroke)、填充(fill)、text(文字)、滤镜(paint)、遮盖(mask),其中paint相当于是整

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/146241.html

(0)
上一篇 2025-04-15 22:33
下一篇 2025-04-15 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信