2009-12-08 59 views
8

程序如何在以数组形式映射的帧缓冲区上绘制文本?所需要的是一种表示单个字符的方法,以及以不太低效的方式逐像素地绘制字符。理想情况下,字符的表示只能用代码来定义,并且不需要第三方库。在Linux的帧缓冲区上绘制文本从C

有没有人知道在自由许可下可用的代码?或者用于生成用于程序代码的字体的数据定义的工具,例如,位图字形/字符值的数组?

+0

是为了将结果显示在屏幕上,还是将其写入文件? – 2009-12-08 21:03:08

+1

要在屏幕上显示,理想情况下最高可达60fps – grrussel 2009-12-08 21:13:15

回答

3

我没有任何特定于帧缓冲区的信息,但是我确实有一种编码字体的有趣方式。

如果您的应用程序可以写入XBM format,则只需创建一个包含所有字符的图像即可对字体进行编码。 XBM文件可以作为C或C++文件包含,并且通过使用适当的偏移量,您可以轻松访问单个字符。确保每个字符从可被8整除的X坐标开始,因为图像被编码为每像素一位;任何不符合8位边界的东西都需要掩蔽和移位。

-3

要在2D阵列上绘制线条,请使用Besengam's algorithm

要使用直线绘制字符,请使用一系列moveTo,lineTo构建您的字母表。例如。一个简单的“L”:

image.moveTo(0,-fontHeight); 
image.lineTo(0, 0); 
image.lineTo(fontWidth,0); 
1

我想做到这一点的最好方法是使用位图字体:​​。本教程适用于OpenGL,但您可能会找到很多有用的信息。