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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AGG第三十五课 gsv_text 渲染ASCII字符相关的知识,希望对你有一定的参考价值。

代码

    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字符的主要内容,如果未能解决你的问题,请参考以下文章

2018-08-22 第三十五课

第三十五课 栈的概念及实现(下)

DT大数据梦工厂第三十五课 Spark系统运行循环流程

第三十五课文本编辑器中的数据存取

AGG第三十六课 gsv_text_outline 渲染环绕的字符

AGG第三十四课 stroke_aa和outline_aa渲染线段效率对比