下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cairo(3)Cairo后端Cairo支持多种后端,本文基于几个例如表达如何使用Cairo各种后端创立PNGPDFSVGCairoGTKPNG图像(example-1.c)用于生成PNG图像。<cairo.h>intmain(intargc,char*argv[]){cairo_surface_t*surface;cairo_t*cr;48);}
surface=cairo_image_surface_create(CAIRO_FORMAT_ARGB32,320,cr=cairo_create(surface);cairo_set_source_rgb(cr,0.627,0,0);cairo_select_font_face(cr,“AdobeHeitiStd“,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);cairo_set_font_size(cr,24.0);cairo_move_to(cr,10.0,34.0);cairo_show_text(cr,“我是中国人,我爱我的祖国。“);cairo_surface_write_to_png(surface,“image.png“);cairo_destroy(cr);cairo_surface_destroy(surface);return0;这个例如是一个很小的把握台程序,运行后可生成一份PNG图像文件。#include<cairo.h>上述头文件声明白上面例如中调用的函数以及一些常量的定义。cairo_surface_t*surface;cairo_t*cr;这两行代码声明白一个Cairo外观与一个Cairosurface=cairo_image_surface_create(CAIRO_FORMAT_ARGB32,320,48);cr=cairo_create(surface);现在我们生成了Cairo外观与Cairo环境,所生成的外观是一份320x48px的图像。cairo_set_source_rgb(cr,0.627,0,0);设置源的颜色为darkred,就好比是选择了暗红色的颜料。cairo_select_font_face(cr,“AdobeHeitiStd“,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);cairo_set_font_size(cr,24.0);选择字体类型并设置其尺寸。〔“fc-list“体〕cairo_move_to(cr,10.0,34.0);cairo_show_textcr,“我是中国人,我爱我的祖国。;将“画笔”移动到图像区域的(10.0,34.0)位置开头绘制文本。cairo_surface_write_to_png(surface,“image.png“);这个函数创立PNG图像。cairo_destroy(cr);cairo_surface_destroy(surface);Cairo编译这个例如:$gcc-oexample-1`pkg-config--cflags--libsgtk+-2.0`example-1.cPNG图像如以以下图所示:PDF文件(example-2.c)CairoPDF与第一个例如所生成的图像是一样的。#include<cairo.h>#include<cairo-pdf.h>intmain(intargc,char*argv[]){cairo_surface_t*surface;cairo_t*cr;surface=cairo_pdf_surface_create(“pdffile.pdf“,320,48);cr=cairo_create(surface);cairo_set_source_rgb(cr,0.627,0,0);cairo_select_font_face(cr,“AdobeHeitiStd“,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);cairo_set_font_size(cr,24.0);cairo_move_to(cr,10.0,34.0);cairo_show_text(cr,“我是中国人,我爱我的祖国。“);cairo_show_(cr);cairo_destroy(cr);cairo_surface_destroy(surface);return0;}编译这个例如:$gcc-oexample-2`pkg-config--cflags--libsgtk+-2.0`example-2.cPDF文件,请使用PDF阅读器查看,LinuxEvince或KPDF。surface=cairo_pdf_surface_create(“pdffile.pdf“,320,48);pdf文件,必需使用cairo_pdf_surface函数创立一个pdf外观。pdfcairo_show_(cr);PDF文档在Evince中显示效果如以以下图所示:SVG文件CairoSVGSVG(ScalbleVectorGraphics)文件。SVG技术近几年很热门。#include<cairo.h>#include<cairo-svg.h>intmain(intargc,char*argv[]){cairo_surface_t*surface;cairo_t*cr;surface=cairo_svg_surface_create(“svgfile.svg“,320,48);cr=cairo_create(surface);cairo_set_source_rgb(cr,0.627,0,0);cairo_select_font_face(cr,“AdobeHeitiStd“,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);cairo_set_font_size(cr,24.0);cairo_move_to(cr,10.0,34.0);cairo_show_textcr,“我是中国人,我爱我的祖国。;cairo_destroy(cr);cairo_surface_destroy(surface);return0;}编译这个例如:$gcc-oexample-3`pkg-config--cflags--libsgtk+-2.0`example-3.cSVG文件可以使用Firefox、Opera、Inkscape程序查看。surface=cairo_svg_surface_create(“svgfile.svg“,320,48);要生成一份SVG文件,必需使用cairo_svg_surface_create函数创立一个svgSVG文件,使用Firefox查看结果如以以下图所示:GTK窗口GTKCairoGTKCairo绘图模型将贯穿于本指南。#include<cairo.h>#include<gtk/gtk.h>staticgbooleanon_expose_event(GtkWidget*widget,GdkEventExpose*event,gpointerdata){cairo_t*cr;cr=gdk_cairo_create(widget->window);cairo_set_source_rgb(cr,0.627,0,0);cairo_select_font_face(cr,“AdobeHeitiStd“,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);cairo_set_font_size(cr,24.0);cairo_move_to(cr,10.0,34.0);cairo_show_text(cr,“我是中国人,我爱我的祖国。“);cairo_destroy(cr);returnFALSE;}intmain(intargc,char*argv[]){GtkWidget*window;gtk_init(&argc,&argv);window=gtk_window_new(GTK_WINDOW_TOPLEVEL);g_signal_connect(window,“expose-event“,G_CALLBACK(on_expose_event),NULL);g_signal_connect(window,“destroy“,G_CALLBACK(gtk_main_quit),NULL);gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window),320,48);gtk_widget_set_app_paintable(window,TRUE);gtk_widget_show_all(window);gtk_main();return0;}GTK+如以以下图所示:#include<cairo.h>#include<gtk/gtk.h>cairo与gtk+库的头文件。g_signal_connect(window,“expose-event“,G_CALLBACK(on_expose_event),NULL);GTK+窗口被重绘时,会发出expose-event信号,我们可将这一信号连接到on_expose_event回调函数上。gtk_widget_set_app_paintable(window,TRUE);GtkDrawingAreawidget或者更widget,本例选择GtkWindow。由GtkWindowwidget对expose-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026电气装备电线电缆行业市场动态监测与竞争情报分析报告
- 2026mRNA疫苗生产技术转移与本土化生产能力建设规划报告
- 2026功能性饮料核心技术突破与专利壁垒分析报告
- 2026乳品流动改良剂对加工设备能效提升贡献度分析报告
- 2026疫苗临床试验规范化管理与发展趋势研究报告
- 2026智能座舱人机交互体验评价体系报告
- 2026创新药中美双报策略与国际化发展路径研究报告
- 2026充电桩材料创新与设备降本增效路径报告
- 企业员工培训课程开发方案
- 2026年城市交通拥堵治理交通拥堵停车场治理方案
- 中国垂体瘤诊疗指南2025版
- 审计技能大赛试题及答案
- 钢筋模板混凝土监理实施细则
- 《地球的公转》地理授课课件
- 学校招生奖惩制度
- 【完整版】铁路站场路基工程施工组织设计
- 2025年注册验船师资格考试(A级-船舶检验专业能力)历年参考题库含答案
- 数独8宫格游戏(初级难度)题目100道
- 养殖场生物安全课件
- 舞台灯光音箱施工方案
- 2025年内蒙古自治区中考物理试卷真题(含答案)
评论
0/150
提交评论