cairo设置

C++绘图工具cairo的基本教程:https://www.cairographics.org/tutorial/

配置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");

}



“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

kongdir

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值