cairo设置
来源:互联网 发布:数据新闻手册 编辑:程序博客网 时间:2024/06/06 10:18
配置Anjuta:
"构建"->"配置项目" 里的 "Configure Options"里的CXXFLAGS里加上以下配置:
-I /usr/include/cairo -L/usr/lib -lcairo
注:第一个-I是大写的i,最后一个-lcairo是小写的L
配置好的CXXFLAGS是这样的:
'CXXFLAGS=-g -O0 -I /usr/include/cairo -L/usr/lib -lcairo'
然后在需要使用cairo的源文件里(比如main.cc)包含头文件cairo.h:
#include <cairo.h>
测试代码:
int main ()
{
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
cairo_t *cr = cairo_create (surface);
cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 32.0);
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
cairo_move_to (cr, 10.0, 50.0);
cairo_show_text (cr, "Hello, world");
cairo_destroy (cr);
cairo_surface_write_to_png (surface, "hello.png");
cairo_surface_destroy (surface);
return 0;
}
运行上述代码后会在项目的文件夹里生产一个hello.png文件
以下是实际使用时的代码示例:
//全局变量
cairo_surface_t *surface;
cairo_t *cr;
//帮助函数:
//InitCairo用于初始化画图设置,例如画笔宽度,字体大小,背景颜色
void InitCairo(double canvasWidth)
{
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, canvasWidth, canvasWidth);
cr = cairo_create (surface);
//line
cairo_set_line_width(cr, 2);
//font
cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 18.0);
//white background
cairo_rectangle (cr, 0,0,canvasWidth, canvasWidth);
cairo_set_source_rgb (cr, 255, 255, 255);
cairo_fill (cr);
}
//CompleteCairo函数用于保存画图,回收资源
void CompleteCairo(const char* fileName)
{
cairo_destroy (cr);
cairo_surface_write_to_png (surface, fileName);
cairo_surface_destroy (surface);
}
//示例
int main()
{
InitCairo (800);
cairo_move_to(cr, 0,0);
cairo_line_to(cr, 50,50);
cairo_set_source_rgb(cr, 0,0,0);
cairo_stroke(cr);
CompleteCairo ("test.png");
}
- cairo设置
- cairo
- ubuntu设置cairo-dock自启动
- cairo-dock中设置天气的代码
- cairo介绍
- cairo 教程
- cairo总结
- 什么是Cairo
- Cairo-dock
- Cairo初探
- Cairo 绘图
- cairo学习
- cairo api
- Cairo教程
- Cairo 初探
- cairo安装
- cairo-dock cairo-dock-plugin
- The Cairo graphics tutorial -------Cairo definitions
- 燕麦云何洋开讲丨粤港澳大湾区来了,创业者们准备好了吗?
- 如何验证新老版本APK签名是否一致
- C++学习(31)
- 812C(二分)
- 提示插件
- cairo设置
- 图标不够大的时候添加背景,让每个图标看起来都一样大
- QPixmap之颜色摄取器
- RedHat上面部署iObjects C++
- android 模拟触摸
- 多个文件共享结构体变量
- 获取URL中的某个参数的方法
- Ubuntu16.04安装XGBoost简明教程
- sort