Cairo学习笔记

Cairo是一个支持多种输出设备的2D图形库。当前支持的输出目标(output target)包括:X Window System,Quartz,Win32,image buffers,PostScript,PDF,还有 SVG。

下面研究一下Cairo的绘图模型,首先是该模型中最重要的三个概念:这三个概念对应于下图中的三层从上到下分别为:source,mask,destination。简单的思想就是Source会通过Mask的过滤从而画在我们的输出设备(destination)上。

source是用来绘图的绘图板,或者笔,墨水,绘图的时候可以用来画线,填充。Source可以有以下四种:Colors,Gradients,Patterns和Images。

image imageimage

最下面的destination,是一种surface,是要输出的设备,可以是窗口,或者一个PDF,SVG等等。因此我们要做的是使用“动词”构造一个合适的Mask。

Mask被用作一个过滤器。Mask用来决定Source的哪些部分可以应用到destination上,哪些不可以用到destination上。

所有的这三层会对应于一个Context。Context里面包含所有图形的状态数据(比如:线的宽度,颜色,surface to draw,还有其它,这就允许绘图函数使用少量的参数来绘图)。Mask层上不透明的部分可以应用到destination上,透明的地方刚不会。

这些“动词”包括:Stroke和Fill。Stroke允许path附近的source通过mask。而fill允许path内部的元素通过mask。(The stroke operation draws the outlines of shapes and the fill operation fills the insides of shapes.)另外的动词还包括Paint,Mask和ShowText等。

 

更多请参考这里:http://www.cairographics.org/tutorial/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值