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 只能够横向字符的渲染

时间: 2024-12-08 03:10:28

AGG第三十五课 gsv_text 渲染ASCII字符的相关文章

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

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> render

NeHe OpenGL教程 第三十五课:播放AVI

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错.你可以试试. 首先我得说我非常喜欢这一章节.Jonat

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> ren

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

1 渲染代码 void TestStrokeAAPerformance() { 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_aa

AGG第三十二课 renderer_outline_aa更快的渲染线段算法

留给:曾经在校园奔跑时候,摔破膝盖,擦伤手掌的孩子! 1 前言 本章提供了采用新的线段渲染算法的例子,相比于已经实现的stroke管道算法,平均提高了2倍的速度,最好的情况下是2.6倍加速度.当然这种算法应用在细线上速度才会快,最好是小于2个像素. 在其他的章节中会跟conv_stroke进行效率的对比.同样的避免不了引入更多的限制,这一点可以在下面了解到.多说一句:conv_stroke是最昂贵的转换器. The rasterizer itself works much faster, bes

AGG第三十九课 rasterizer_scanline_aa画线函数疑惑

头文件 #include<agg_rasterizer_scanline_aa.h> 类型 template<class Clip =rasterizer_sl_clip_int> class rasterizer_scanline_aa 成员函数 void add_path(VertexSource&vs,unsigned path_id=0)加入顶点源 void reset() 清空上一次的渲染缓存数据,每次调用add_path函数之前都需要执行该操作 其中也提供了简单

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

一.QAction的信号 1.QAction被点击之后会产生一个triggered信号 (1).通过信号与槽的机制能够捕捉对QAction对象的操作 (2).项目中可以将多个信号映射到同一个槽函数 二.文件的打开.保存.另存为操作 1.文件的打开操作 2.文件的保存操作 (1).定义成员变量用于标记数据来源 3.文件的另存为操作 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMenuBar> #include <QMenu>

JAVA学习第三十五课(常用对象API)- 集合框架(三)—Vector、LinkedList、ArrayList集合演示

集合框架构成图 摘自百度图片 一.Vector集合 演示 虽然Vector已经不常用了,但是还是要了解一下其中的方法 import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Vector

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

本节课内容: 1.     TaskScheduler工作原理 2.     TaskScheduler源码 一.TaskScheduler工作原理 总体调度图: 通过前几节课的讲解,RDD和DAGScheduler以及Worker都已有深入的讲解,这节课我们主要讲解TaskScheduler的运行原理. 回顾: DAGScheduler面向整个Job划分多个Stage,划分是从后往前的回溯过程:运行时从前往后运行的.每个Stage中有很多任务Task,Task是可以并行执行的.它们的执行逻辑完