精华内容
下载资源
问答
  • Cairo

    2019-10-25 09:11:40
    Cairo
  • cairo

    2009-09-06 08:35:00
    http://liyanrui.is-programmer.com/这是一个好网站,东西也不少。cairo图形指南http://liyanrui.is-programmer.com/posts/2326.html

    http://liyanrui.is-programmer.com/
    这是一个好网站,东西也不少。
    cairo图形指南
    http://liyanrui.is-programmer.com/posts/2326.html

    展开全文
  • libsvg-cairo-0.1.6:VATC libsvg-cairo构建
  • Sphere的Cairo图形库绑定 请阅读。
  • cairo学习

    2019-10-24 16:48:47
    合成运算符1.1 Example images1.1.1 The Destination1.1.2 Setting the compositing operator1.2 Operaters1.2.1 CAIRO_OPERATOR_CLEAR1.2.2 CAIRO_OPERATOR_SOURCE1.2.3 CAIRO_OPERATOR_OVER1.2.4 CAIRO_OPERA...

    1. 合成运算符

    Cairo’s compositing operators

    • 通常,您将使用cairo在彼此之上绘制对象。 但是,如果需要,开罗可以采取不同的措施! 实际上,您可以使用所有Porter / Duff合成运算符。
    • 自cairo 1.0起提供了14种不同的运算符。 开罗1.10中添加了更多运算符。 此页面尝试描述它们。 它可能包含错误,并且可能不完整。 请帮助改善它!

    1.1 Example images

    • 最好是通过显示示例图像来描述合成运算符的效果,因此下面将进行说明。 这些图像显示了将对象(半透明的蓝色矩形)绘制到已经包含另一个图像(半透明的红色矩形)的表面上的结果。
    • 运算符名称试图描述运算符的含义。 需要提及两个词:源和目的地(或目的地)。 在这方面,它们提供了两个对象,它们有助于绘制操作的图形输出。 目标是绘图操作之前的表面名称,源是绘图时添加的表面的名称。

    1.1.1 The Destination

    要创建示例图像,首先使用默认运算符将红色矩形绘制到(空)目标表面:

    cairo_rectangle (cr, 0, 0, 120, 90);
    cairo_set_source_rgba (cr, 0.7, 0, 0, 0.8);
    cairo_fill (cr);
    

    现在,该表面是一个透明平面,其中具有部分透明的矩形。 这表示将要执行下一个绘制操作的目的地。 现在,表面的红色部分和完全透明的部分都是目的地的自然部分。

    1.1.2 Setting the compositing operator

    设置合成运算符

    • “ Cairo通过一种基本的绘制操作在内部进行绘制:将源和蒙版自由放置在目标上方的某个位置。然后将图层全部压在一起,并将源中的涂料转移到蒙版允许的任何位置。”
    • 但是,在合成运算符的名称中没有提到掩码。它们仅引用源和目的地。关于应将哪些内容视为合成操作,这提供了两种不同的解释:
    • 由于遮罩确定了从源头处转移涂料的位置,因此它还确定了执行合成操作的区域。这种解释可以称为有界的。
    • 进行合成操作的区域不受掩模的限制。相反,未传输源层的任何部分都被认为是完全透明的。我们称这种对源的解释是无限的。
    • 对于某些运算符,两种解释均会得出相同的结果,而对于另一些运算符则不会。在开罗,实际解释取决于操作员。无限制的运算符会在掩码范围之外修改目标。但是,它们的效果仍然可以通过裁剪来限制。有关详细信息,请参见“剪切和遮罩”部分。

    蓝色矩形是使用新的运算符绘制的:

    cairo_rectangle (cr, 40, 30, 120, 90);
    cairo_set_source_rgba (cr, 0, 0, 0.9, 0.4);
    cairo_fill (cr);
    

    结果可以在下面的图像中看到。 请注意,两个矩形都是透明绘制的。 在研究图像时,您也许还能猜出它们如何寻找不透明的物体。 作为参考,也提供了创建图像的代码。

    1.2 Operaters

    • 索引A(分配给颜色成分和透明度因子)指代来源,而索引B指代目的地。 索引R是指合成操作的结果。
    • 源和目标中的每个像素都由元组(r,g,b,a)完整描述。 因为将始终将它们视为相同,所以我们将使用 “ x”作为任何颜色成分的简写, “a”描述了alpha值(不透明度,并以不同的方式处理。
    • xa和aA的乘积由xaA描述。 xaB和xaR具有相似的含义。
    • 颜色计算方程式包含aR除法,如果aR为零,则无法完成除法。 但是在这种情况下,颜色无论如何都没有关系(完全透明),也可以将其设置为零。 (在内部,颜色可能会以不同的方式处理,因此可能有必要,也可能没有必要。)

    1.2.1 CAIRO_OPERATOR_CLEAR

    • 在绘制第二个对象的地方,第一个被完全删除。 其他任何地方都完好无损。 第二个对象本身未绘制。
    • CLEAR运算符的作用取决于对源的解释。 在开罗,此运算符是有界的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    0 0

    1.2.2 CAIRO_OPERATOR_SOURCE

    • 绘制第二个对象,就好像下面没有其他内容一样。 仅在蓝色矩形之外,完整保留红色的矩形。
    • SOURCE运算符的作用取决于对源的解释。 在开罗,此运算符是有界的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aA xA

    1.2.3 CAIRO_OPERATOR_OVER

    • 该图显示了如果您将两个半透明的幻灯片彼此叠放会得到什么。 该运算符是cairo的默认运算符。
    • 有界和无界源的OVER运算符的输出都是相同的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    αA+αB(1αA){\alpha A+\alpha B *(1-\alpha A)} (xαA+xαB(1αA))/(αR)(x\alpha A+x\alpha B *(1-\alpha A))/(\alpha R)

    1.2.4 CAIRO_OPERATOR_IN

    • 第一个对象被完全删除,第二个仅在第一个对象所在的位置绘制。
    • 请注意,第一个对象的透明度已考虑在内。 也就是说,如果第一个对象是不透明的,那么小的蓝色矩形会比原来要浅一些。
    • IN运算符的作用取决于对源的解释。 在开罗,此运算符不受限制。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aA·aB xA

    1.2.5 CAIRO_OPERATOR_OUT

    • 仅在红色矩形没有绘制的地方绘制蓝色矩形。 由于红色部分透明,因此您可以在重叠区域看到蓝色阴影。 否则,红色物体将被完全移除。
    • OUT运算符的作用取决于对源的解释。 在开罗,此运算符不受限制
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aA·(1−aB) xA

    1.2.6 CAIRO_OPERATOR_ATOP

    • 这将使第一个对象大部分保持完整,但会将两个对象混合在重叠区域中。 除了那里,没有绘制第二个对象。
    • 如果仔细观察,您会发现重叠区域中得到的颜色与OVER运算符产生的颜色不同。 任何两个运算符在重叠区域产生不同的输出!
    • 有界和无界源的ATOP运算符的输出都相同。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aB xaA + xB·(1−aA)

    1.2.7 CAIRO_OPERATOR_DEST

    • 保留第一个对象不变,第二个对象完全丢弃。
    • 对于有界和无界源,DEST运算符的输出是相同的。
      在这里插入图片描述
      |Resulting alpha (aR) | Resulting color (xR)|
      |–|--|
      | aB | xB |

    1.2.8 CAIRO_OPERATOR_DEST_OVER

    • 结果类似于OVER运算符。 除了对象的“顺序”相反,因此第二个对象绘制在第一个对象的下方。
    • 对于有界和无界源,DEST_OVER运算符的输出都是相同的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aB + aA·(1−aB) (xaB + xaA·(1−aB))/aR

    1.2.9 CAIRO_OPERATOR_DEST_IN

    • 蓝色矩形用于确定红色部分的哪一部分保留完整。 重叠区域之外的所有内容都将被删除。
    • 这类似于IN运算符,但第二个对象位于第一个“下方”。
    • 类似于对源的两种解释,可以想象到关于目的地的相同区别。 在开罗,DEST_IN运算符是无界的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    aA·aB xB

    1.2.10 CAIRO_OPERATOR_DEST_OUT

    • 第二个对象用于减少第一个对象在重叠区域中的可见性。 考虑其透明度/不透明度。 第二个对象本身未绘制。
    • DEST_OUT运算符的输出对于有界和无界解释都是相同的。
      在这里插入图片描述
    Resulting alpha (aR) Resulting color (xR)
    (1−aA)·aB xB

    1.2.11 CAIRO_OPERATOR_DEST_ATOP

    • 与ATOP运算符相同,但是再次如同绘制操作的顺序已颠倒一样。
    • 在开罗,DEST_ATOP运算符不受限制。
    展开全文
  • Cairo-开源

    2021-05-29 05:01:15
    Cairo 着手利用现有的开源语音资源(如 FreeTTS 和 Sphinx-4)提供符合 MRCPv2 的企业级语音解决方案。
  • 绑定到cairo图形库 基于Dethe Elza的版本但已大大扩展和更新。 转到特定扩展名: NewSurfaceFromImage(image.Image) Surface.GetData()[] byte Surface.SetData([] byte) Surface.GetImage()image....
  • 本教程是cairo官方教程的中文版,深刻详细的解释了cairo绘图模型,给人一种非常形象的认识。如果学习cairo绘图,这是一个必不可少的资料
  • go-cairo:是cairo图像库的Go绑定
  • Mono.Cairo

    2015-09-17 15:19:48
    从Mono源码中提取的Cairo库的.Net封装库,并使用vs2013基于.NET 3.5编译。直接引用Mono.Cairo.dll即可,同时提供Mono.Cairo源码。.NET也可以使用Cairo库进行绘图了。
  • Cairo图形指南

    2018-02-27 23:21:18
    cairo比较完整的教学资料,看完可以掌握基本了。内含大量的样例代码,附以注解,易懂
  • 成功解决OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2 目录 解决问题 解决思路 解决方法 解决问题 raise OSError("dlopen() failed to...

    成功解决OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2

     

     

     

     

    目录

    解决问题

    解决思路

    解决方法


     

     

     

     

     

     

    解决问题

        raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
    OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2

     

     

     

     

     

    解决思路

    引发操作系统错误(“dlopen()未能加载库:%s“%”/“。join(names))
    OS错误:dlopen()加载库失败:

     

     

     

     

     

     

    解决方法

    参考国外网友方法

    安装GTK+:GTK+:GTK+的简介、安装、使用方法之详细攻略

    190517,第一次可以,但是第二次安装后,测试没有成功!亟待解决

     

     

    参考文章:(贴上原址表示感谢)
    Getting “OSError: dlopen() failed to load a library: cairo / cairo-2” on Windows
    pygal输出png问题:dlopen() failed to load a library: cairo / cairo-2

    展开全文
  • 绑定到Cairo图形库 改编为支持多种输出设备的2D图形库 。 此包装器实现的某些功能可能会记录在。 有大量的。
  • cairo-example(cairo库的一个例子,C语言,含有makefile文件)
  • Cairo 初探

    千次阅读 2017-01-14 09:52:31
    关于Cairo Cairo是非常流行的开源2D图形渲染引擎库,它支持包括X-Windos,Win32,图像,pdf在内的各种输出设备。目前,Cairo已被广泛的使用在多个平台上来渲染图形界面,包括Firefox/Webkit-EFL/GTK+/Poppler等等。 ...

    关于Cairo

    Cairo是非常流行的开源2D图形渲染引擎库,它支持包括X-Windos,Win32,图像,pdf在内的各种输出设备。目前,Cairo已被广泛的使用在多个平台上来渲染图形界面,包括Firefox/Webkit-EFL/GTK+/Poppler等等。

    编译安装Cairo


    我们可以直接从Ubuntu的上下载cairo的稳定版:
    [plain] view plain copy
    1. sudo apt-get install libcairo2-dev  
    这里,为了使用Cairo的最新版,我们选择从git上下载源代码,并编译安装。
    [plain] view plain copy
    1. git clone git://anongit.freedesktop.org/git/cairo  
    2. cd cairo  
    3. mkdir cairobuild  
    4. ./autogen.sh #这里可以加上配置选项  
    5. make   
    6. sudo make install  

    Cairo的基本绘图模型与概念

    在使用Cairo编程前,我们应该对于Cairo的基本绘图模型做一了解。这些模包括:表面(surfac),源(source),遮盖(mask),路径(path),上下文(context)和函数(verb)。

    表面(surface)

    Surface是Cair绘图的目标区域,在Cairo中使用cairo_surface_t表示。前面讲到Cair支持多种输出设备,因此我们绘图的目标区域可能是一张png图象也可能是一个pdf文件。不同目标的绘制的底层实现各不相同,而surfac对这些绘图的目标进行了一个抽象。因此,我们在创建了相应的surface后,只需要调用统一的函数对surface进行绘制,而不需要关心其后端(backend)的具体实现。

    源(source)

    Source指的是我们绘图是的具体的材料与格式,它包括画笔的粗细、颜色等等。在Cairo中,source不光可以是简的颜色,也可以是一种图案(patter)比如渐变色,甚至可以是一个表面(surface)。

    遮盖(mask)

    Mask相当于我们在绘图过程,用一张挖空了某些部分的纸遮挡在画布上。这样,在绘图过程中,只有挖空的部分会被我们所使用的源影响到,其余部分不受影响。

    路径(path)

    Path是指Cairo的绘制表面上一些虚拟的路径,它可能是一条线段,一个闭合的四边形,也可能是更加复杂的曲线。Path可以由Cairo的函数(在Cairo中被称为verb)所创建。但是,由于Path只是虚拟的路径,所以对Path的创建并不代表对表面绘制。接下来,我们还需要使用绘制函数(Cairo里称为drawing verb)进行绘制。比如,我们可以通过cairo_rectangle函数创建一个闭合的长方形的路径,然后通过cairo_fill函数填充这个长方形。

    上下文(context)

    Context是Cairo的核心结构,在Cairo中使用cairo_t来表示。它记录了当前状态下,与绘制有关的各种信息,包括之前介绍过的表面、源、遮盖、字体等等。 在任何绘制之前,我们都必须先创建一个cair_t结构,同时将它绑定到一个绘制表面上(surface)。下面的代码段创建了一个cairo_t,并将其绑定到一个640x480的png图象上。
    [cpp] view plain copy
    1. cairo_surface_t *surface;  
    2. cairo_t *cr;  
    3.   
    4.   
    5. surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 640, 480);  
    6. cr = cairo_create (surface);  

    函数(verb)

    Cairo中与绘制相关的函数被称为verb。目前Cairo支持五种drawing verb,分别是stroke(画线), fill(填充),text(文字),paint(滤镜),mask(遮盖)。其中,paint相当于是整个源进行了一次操作,比如cairo_paint_with_alpha函数可以设置一个alpha值,来对整个图象进行灰度的减少。

    变换(transformation)

    Cairo还提供类似OpenGL的坐标变换操作。变换操作包括:平移(cairo_translate),伸缩(cairo_scale),旋转(cairo_rotate)。我们也可以通过cairo_transform函数来指定一个复杂的变换。

    例子

    绘制一个矩形到rectangle.png图片上。

    [cpp] view plain copy
    1. #include <cairo.h>  
    2.   
    3. int  
    4. main (int argc, char *argv[])  
    5. {  
    6.     cairo_surface_t *surface;  
    7.     cairo_t *cr;  
    8.   
    9.     int width = 640;  
    10.     int height = 480;  
    11.     surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);  
    12.     cr = cairo_create (surface);  
    13.   
    14.     /* Drawing code goes here */  
    15.     cairo_set_line_width (cr, 10);  
    16.     cairo_set_source_rgb (cr, 0, 0, 0);  
    17.     cairo_rectangle (cr, width/4, height/4, width/2, height/2);  
    18.     cairo_stroke (cr);  
    19.   
    20.     /* Write output and clean up */  
    21.     cairo_surface_write_to_png (surface, "rectangle.png");  
    22.     cairo_destroy (cr);  
    23.     cairo_surface_destroy (surface);  
    24.   
    25.     return 0;  
    26. }  

    绘制helloworld到helloworld.pdf上。

    [cpp] view plain copy
    1. #include <cairo.h>  
    2. #include <cairo-pdf.h>  
    3. int  
    4. main (int argc, char *argv[])  
    5. {  
    6.     cairo_surface_t *surface;  
    7.     cairo_t *cr;  
    8.     cairo_text_extents_t te;  
    9.   
    10.   
    11.    /* Prepare drawing area */  
    12.     int width = 200;  
    13.     int height = 120;  
    14.         
    15.     surface = cairo_pdf_surface_create ("helloworld.pdf", width, height);  
    16.     cr = cairo_create (surface);  
    17.   
    18.   
    19.     /* Drawing code goes here */  
    20.     cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);  
    21.     cairo_select_font_face (cr, "Georgia",  
    22.         CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);  
    23.     cairo_set_font_size (cr, 20);  
    24.     cairo_text_extents (cr, "helloworld", &te);  
    25.     cairo_move_to (cr, width/2 - te.width / 2 - te.x_bearing,  
    26.           height/2 - te.height / 2 - te.y_bearing);  
    27.     cairo_show_text (cr, "helloworld");  
    28.   
    29.   
    30.     cairo_destroy (cr);  
    31.     cairo_surface_destroy (surface);  
    32.   
    33.   
    34.     return 0;  
    35. }  

    gcc编译

    使用gcc编译调用了cairo的源文件时,应指定cairo的头文件目录和库文件所在目录。假设源文件文件名为cairotest.c,cairo.h等头文件所在目录为/usr/include/cairo,cairo库文件所在目录为/usr/local/lib,则可以使用以下命令编译:
    [plain] view plain copy
    1. gcc cairotest.c -o cairotest -I/usr/include/cairo -L/usr/local/lib/ -lcairo  
    我们也可以使用pkg-config来配置cairo的目录,然后使用如下命令来编译:
    [plain] view plain copy
    1. gcc -o cairotest $(pkg-config --cflags --libs cairo) cairotest.c  
    展开全文
  • cairo安装

    千次阅读 2017-04-07 14:40:31
    ~ sudo apt-get install libcairo2-dev # Cairo的底层依赖库 ~ sudo apt-get install libxt-dev ~ R # 启动R程序 > install.packages("Cairo") # 安装Cairo
  • 基于wayland的cairo

    2018-08-21 18:11:59
    基于wayland的cairo,该代码是测试例子,会在界面显示一幅图,主要用于测试基于wayland的cairo使用方法。
  • cairo:https-源码

    2021-03-21 20:50:18
    cairo:https
  • 简介提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境...cairo就是GTK+采用的底层图形库,负责构建图形界面。cairo是一款开源的2d矢量图形库,支持多种后端输出...
  • 简介提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框架性质...cairo是一款开源的2d矢量图形库,支持多种后端...
  • cairo-starter-源码

    2021-03-09 11:26:58
    cairo-starter
  • Cairo-Dock是一个美观,轻巧且方便的桌面界面,可以方便地替换系统面板! 它具有多码头,任务栏,启动器和许多有用的小程序。 可以将小程序从扩展坞上拆下来,用作桌面小部件。 一键式提供大量现成的主题,并可在您...
  • Cairo 绘图

    2018-12-28 12:03:23
    void line_stroke(Surface_t *surface,float x,float y,int flag) {  static int mX = 0,mY = 0,mI = 0;  if(mI == 0)  {  mI = 1; mX = x; mY = y;  }  else  {  cairo_surface_t ...
  • cairo图像库

    2012-01-16 09:03:58
    要用到Cairo图形库 要用到Cairo图形库
  • Cairo初探

    万次阅读 2014-07-21 00:02:40
    关于Cairo Cairo是非常流行的开源2D图形渲染引擎库,它支持包括X-Windos,Win32,图像,pdf在内的各种输出设备。目前,Cairo已被广泛的使用在多个平台上来渲染图形界面,包括Firefox/Webkit-EFL/GTK+/Poppler等等...
  • cairo-1.17.4.tar

    2020-12-24 10:50:03
    cairo-1.17.4.tar
  • cairo-1.10.2

    2013-08-02 10:13:25
    linux下的cairo-1.10.2库
  • cairo_android

    2012-09-03 22:48:14
    cairo移植到android系统的代码。
  • php_cairo插件

    2016-09-30 14:19:27
    1、把php_cairo.dll文件放到php的ext扩展文件中,并在php.ini配置文件中添加extension=php_cairo.dll。 2、把剩下dll文件放到C:\Windows\System32下面,如果是64位操作系统,则放到C:\Windows\SysWOW64文件目录下 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,924
精华内容 4,369
关键字:

cairo