cairo填充_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。
最下面的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学习笔记相关推荐
- python 填充多边形 学习笔记
笔记: 两个函数都只能填充凸多边形,凹多边形会丢失一部分内容,用人脸关键点做掩码时出现了这个情况. 函数可以用来填充凸多边形,只需要提供凸多边形的顶点即可. img = np.zeros((1080, ...
- pandas用均值填充nan_Pandas学习笔记(三)
前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始. GroupBy的使用 聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后 ...
- cairo填充_Cairo 图形指南 (5) —— 形状与填充
这一部分,讲述一些基本的以及较为高级的形状绘制及其纯色 (solid color).图案 (pattern) 与渐变 (gradient) 填充方法. 基本形状 Cairo 提供了几个用于绘制基本形状 ...
- cairo填充_cairo 图形库
简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框 ...
- cairo填充_cairo图形库
简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件QT和GTK+,相对于框架 ...
- cairo填充_Cairo图形指南
Cairo 图形指南 (1) -- 简介 欢迎阅读 Cairo 绘图指南, 这份指南会向你讲述 Cairo 二维矢量绘图库的基本 知识以及一些高级问题.指南中的示例采用 C 语言实现,其中大部分使用了 ...
- cairo填充_cairo graphics 手册(2)
Cairo 定义 本章我们将介绍Cairo 图形库中一些比较有用的定义.这将帮助我们更好的理解Cairo绘图模型. Context 要用Cairo画图,首先得创建一个Cairo 上下文(context ...
- java 设置组件填充_Java学习笔记(三)Java2D组件
一 概述 Java2D的一切都基于java.awt包中的Graphics2D类,它是Graphics的子类. 为了绘制图形,需要使用面板作为画布,例如使用JPanel作为画布,面板有一个paintC ...
- OpenCV学习笔记(九): 漫水填充:floodFill()
OpenCV学习笔记(九): 漫水填充:floodFill() 定义: 漫水填充法是一种用特定的颜色填充联通区域(自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色)通过设置可连通像素的上下限 ...
最新文章
- Android 高级自定义View实战
- 《超低延时直播白皮书》已发布,推动直播延时降低90%以上
- Spring Boot 最流行的 16 条最佳实践!
- TCPDUMP/LIBPCAP 1-由零开始
- [UE4]需要保存的数据
- 大数据之-Hadoop3.x_了解一下hive和hbase的区别---大数据之hadoop3.x工作笔记0084
- 数据结构与算法顺序表数组版
- Sharepoint2010 表单认证常见问题
- 程序员(应届生)求职简历模板+LaTex(overleaf)简历制作+博士简历模板分享+简历赏析
- 密码学常用工具,作图
- Physics.OverlapSphere
- (function(){})()后面的()含义
- 控制网络技术(英文二)
- Metasploit6.0系列教程 -- 渗透Joomla网站
- vue基础模板代码块设置
- 模拟电子技术(二)基本放大电路
- 分享 最全的拉丁语系名字列表,详细到了字根出处,男孩们以后别再起什么Kevin, Mike, Jack了
- Codeforces801D Volatile Kite
- 洛古 P1926 小书童——刷题大军
- 即时通讯云服务免费 破解APP社交化困局
热门文章
- 关键字生成参考文案查找相似款,特卖淘宝达人有福了,自媒体时代的懒人助手
- 速学计算机,新手电脑配置速成学习
- css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
- l完整的计算机系统,一个完整的计算机系统包括
- ROS turtlebot_follower :让机器人跟随我们移动
- 2019.11.20 LS-Dyna与MSC.Dytran特点
- 爆款“小黄鸭”之后,实在RPA助力电商人双11提销量
- RxJava操作符(四)Combining
- 计算机更新一直在57转怎么办,win10系统更新到57%出现死机的原因和解决方法
- 《胜负无定数,敢拼搏成七分》的读后感