1. 程式人生 > >AGG第三十五課 gsv_text 渲染ASCII字符

AGG第三十五課 gsv_text 渲染ASCII字符

agg gsv_text

代碼

agg::rendering_buffer &rbuf = rbuf_window();

agg::pixfmt_bgr24 pixf(rbuf);


typedef agg::renderer_base<agg::pixfmt_bgr24> renderer_base_type;

renderer_base_type renb(pixf);


typedef agg::renderer_scanline_bin_solid<renderer_base_type> renderder_scanline_type;

renderder_scanline_type rensl(renb);


agg::rasterizer_scanline_aa<> ras;

agg::scanline_u8 sl;

ras.reset();

renb.clear(agg::rgba8(255,255,255));


agg::gsv_text txt;

agg::conv_stroke<agg::gsv_text> txtStroke(txt);

txtStroke.width(3);

txtStroke.line_cap(agg::square_cap);


txt.flip(true);//Windows下坐標軸是反轉的

txt.size(20);//文字的尺寸

txt.line_space(10);//gsv_text能夠處理\n換行,設置每一行之間的間距

txt.space(10);//字符之間的間距

txt.start_point(100, 300);//文字的起始位置,實際上是有偏差的,需要進行微調

txt.text("http://fengyuzaitu.blog.51cto.com\nhttp://fengyuzaitu.blog.51cto.com");

ras.add_path(txtStroke);

agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255, 0, 0));

ras.reset();


註意:

1 只支持渲染ASCII字符

2 只能夠橫向字符的渲染


AGG第三十五課 gsv_text 渲染ASCII字符