cairo简单学习

来源:互联网 发布:淘宝二手奢侈品靠谱吗 编辑:程序博客网 时间:2024/06/04 18:35

今天看gtk的demo,然后看到了调用cairo的一些东西,查了下才知道cairo是一个图形库,自己真是无知。

然后简单的学习了一下cairo的用法,以下做总结。


Cairo支持很多不同后端的输出,在实现中被称作“surface”。支持的后端包括 X Window 系统,Win32 GDI,Mac OS X Quartz,OS/2,OpenGL 环境(直接或间接地通过glitz),内存缓冲区,PNG 文件,PDF,PostScript,DirectFB 和 SVG 文件。

还有一些开发中的后端如:OpenVG,Qt,Skia 和 Windows Direct2D。            -wiki


知名应用

  • GTK+, 从2005年的 2.8版开始, 使用 cairo 去渲染它的大多数控件从 GTK+ 3 开始, 所有的渲染任务由 cairo 完成。
  • Mono项目,包括 Moonlight,在很早便设想用 cairo 作为后端驱动GDI+ (libgdiplus) 和 System.Drawing 命名空间。
  • Mozilla 项目在最近版本的Gecko 排版引擎中使用 cairo,用来渲染 Mozilla 生成的图形输出。
    • Gecko 1.8,Firefox 2.0 和 SeaMonkey 1.0 的排版引擎,使用 cairo 渲染 SVG 和 <canvas> 内容。
    • Gecko 1.9,作为 Firefox 3 底层使用 cairo 对网页内容和用户界面进行渲染。
  • Poppler 库使用 cairo 渲染 PDF 文档. cairo 使得对反锯齿矢量图形和透明对象的绘制成为可能。
  • 矢量绘图应用程序 Inkscape 使用 cairo 图形库显示其概要模式,以及自从0.46正式版使用它输出 PDF 和 PostScript 文档。
  • FontForge在2008年10月中旬启用 cairo 为默其认渲染图形库。
  • R 语言经 cairo 用 PDF,PostScript 和 SVG 格式输出图像。
  • Gnuplot 4.4 现在使用 cairo 来渲染 PDF 和 PNG 输出。
-wiki

cairo *cairo_create(cairo_surface_t *target);//target like a canvas

//demo use cairo to create sector
//cr was like a pen
double xc,yc;
xc = 128.0;
yc = 128.0;
double radius =100.0;
double angle1 = 45.0 * (M_PI/180);
double angle2 = 180.0 * (M_PI/180);
cairo_set_line_width(cr,10.0);
cairo_arc (cr , xc, yc, radius, angle1, angle2);
cairo_stroke(cr);

//draw subline
cairo_set_source_rgba(cr,1,0.2,0.2,0.6);
cairo_set_line_width(cr, 6.0);

cairo_arc(cr, xc, yc,10.0,0,2*M_PI);
cairo_fill(cr);

cairo_arc(cr, xc, yc, radius, angle1, angle1);
cairo_line_to(cr, xc, yc);
cairo_arc(cr, xc, yc, radius, angle2, angle2);
cairo_line_to(cr, xc, yc);
cairo_stroke(cr);



//create surface and cairo_t
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
cairo_t *cr = cairo_create (surface);




来自cairo网站,需要两条辅助线


$gcc -o cairo cairo.c -I /usr/include/cairo/ -L /usr/lib -lm `pkg-config cairo --cflags --libs`


0 0
原创粉丝点击