Cairo Drawing Model

Cairo是一个强力的2D绘图库.

Destination

是你最终绘图的目标, 可以是一系列Pixel或者绑定到SVG或PDF文件上.

Source

是实际在绘图时使用的图层, 可以是多种颜色也可以包含透明通道, 可以是某种模式或者由另一个Source(Surface)创建.

Mask

Mask是处于Source和Destination之间的图层, 包含遮罩效果. 当Source需要stamp到Destination上时, 需要根据Mask的属性来决定, 可能直接绘图, 也可能没有效果.

Path

在Mask层和Context中可能存在的, 类似绘图中的线.

Context

Context维护所有的绘图动作, 其中还包括一个destination, 一个sourece, 一个mask, 以及其他一些变量. 在做任意的绘图操作前都应该创建一个context. 例如:

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

Verbs

就是绘图的基本操作.

Stroke(行程)

类似于画笔, 一般是在mask层, 在source上面的图像经过mask层的遮罩, 映射到destination层时, 仅在画笔中的图像可以通过.

Fill

类似stroke, 就是在mask层挖洞, 可以让source层的图像映射到destination层.

其他一些操作都是api级别的, 了解了绘图模型就可以直接使用了. 需要的时候自行查找文档.

最新文章

  1. 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串
  2. hive导入数据
  3. OC 类方法,对象方法,构造方法以及instancetype和id的异同
  4. Jira中Activity Stream中显示Localhost不能正常访问的处理
  5. IOS UIScrollView中 使用 touch 无法响应的问题
  6. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘
  7. cookie记住浏览位置
  8. C++编程音视频库ffmpeg的pts时间换算方法
  9. flask学习(一)
  10. python学习day12 函数Ⅳ (闭包&内置模块)
  11. 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法
  12. HDU1875 畅通工程再续【最小生成树】
  13. [转]VS2015 Git 源码管理工具简单入门
  14. gitbook构建文档命令
  15. Postgres和MySQL创建用户并授予db权限
  16. java-为什么非静态内部类中不能有static修饰的属性,但却可以有final常量?
  17. uiautomator 代码记录 : BT发送测试
  18. Use Laravel/homestead 环境维护基于 brophp 开发的老项目
  19. Delphi 关于DBGrid多选删除(shitf多选,ctrl多选)
  20. C++基础知识之动态库静态库

热门文章

  1. 构建Maven项目
  2. python类的特殊成员和方法
  3. 1107 Social Clusters (30 分)
  4. 清除display:inline-block元素换行符间隙font-size:0;
  5. Exists 方法
  6. Qt测试代码执行时间
  7. 535. Encode and Decode TinyURL(rand and srand)
  8. windows 修改鼠标滚轮自然滚动
  9. Nginx实现负载均衡(nginx + tomcat应用分布式)
  10. scrapy 安装错误