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。

 

最下面的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等。

cairo填充_Cairo学习笔记相关推荐

  1. python 填充多边形 学习笔记

    笔记: 两个函数都只能填充凸多边形,凹多边形会丢失一部分内容,用人脸关键点做掩码时出现了这个情况. 函数可以用来填充凸多边形,只需要提供凸多边形的顶点即可. img = np.zeros((1080, ...

  2. pandas用均值填充nan_Pandas学习笔记(三)

    前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始. GroupBy的使用 聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后 ...

  3. cairo填充_Cairo 图形指南 (5) —— 形状与填充

    这一部分,讲述一些基本的以及较为高级的形状绘制及其纯色 (solid color).图案 (pattern) 与渐变 (gradient) 填充方法. 基本形状 Cairo 提供了几个用于绘制基本形状 ...

  4. cairo填充_cairo 图形库

    简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框 ...

  5. cairo填充_cairo图形库

    简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件QT和GTK+,相对于框架 ...

  6. cairo填充_Cairo图形指南

    Cairo 图形指南 (1) -- 简介 欢迎阅读 Cairo 绘图指南, 这份指南会向你讲述 Cairo 二维矢量绘图库的基本 知识以及一些高级问题.指南中的示例采用 C 语言实现,其中大部分使用了 ...

  7. cairo填充_cairo graphics 手册(2)

    Cairo 定义 本章我们将介绍Cairo 图形库中一些比较有用的定义.这将帮助我们更好的理解Cairo绘图模型. Context 要用Cairo画图,首先得创建一个Cairo 上下文(context ...

  8. java 设置组件填充_Java学习笔记(三)Java2D组件

    一  概述 Java2D的一切都基于java.awt包中的Graphics2D类,它是Graphics的子类. 为了绘制图形,需要使用面板作为画布,例如使用JPanel作为画布,面板有一个paintC ...

  9. OpenCV学习笔记(九): 漫水填充:floodFill()

    OpenCV学习笔记(九): 漫水填充:floodFill() 定义: 漫水填充法是一种用特定的颜色填充联通区域(自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色)通过设置可连通像素的上下限 ...

最新文章

  1. Android 高级自定义View实战
  2. 《超低延时直播白皮书》已发布,推动直播延时降低90%以上
  3. Spring Boot 最流行的 16 条最佳实践!
  4. TCPDUMP/LIBPCAP 1-由零开始
  5. [UE4]需要保存的数据
  6. 大数据之-Hadoop3.x_了解一下hive和hbase的区别---大数据之hadoop3.x工作笔记0084
  7. 数据结构与算法顺序表数组版
  8. Sharepoint2010 表单认证常见问题
  9. 程序员(应届生)求职简历模板+LaTex(overleaf)简历制作+博士简历模板分享+简历赏析
  10. 密码学常用工具,作图
  11. Physics.OverlapSphere
  12. (function(){})()后面的()含义
  13. 控制网络技术(英文二)
  14. Metasploit6.0系列教程 -- 渗透Joomla网站
  15. vue基础模板代码块设置
  16. 模拟电子技术(二)基本放大电路
  17. 分享 最全的拉丁语系名字列表,详细到了字根出处,男孩们以后别再起什么Kevin, Mike, Jack了
  18. Codeforces801D Volatile Kite
  19. 洛古 P1926 小书童——刷题大军
  20. 即时通讯云服务免费 破解APP社交化困局

热门文章

  1. 关键字生成参考文案查找相似款,特卖淘宝达人有福了,自媒体时代的懒人助手
  2. 速学计算机,新手电脑配置速成学习
  3. css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
  4. l完整的计算机系统,一个完整的计算机系统包括
  5. ROS turtlebot_follower :让机器人跟随我们移动
  6. 2019.11.20 LS-Dyna与MSC.Dytran特点
  7. 爆款“小黄鸭”之后,实在RPA助力电商人双11提销量
  8. RxJava操作符(四)Combining
  9. 计算机更新一直在57转怎么办,win10系统更新到57%出现死机的原因和解决方法
  10. 《胜负无定数,敢拼搏成七分》的读后感