在C语言中的Linux上的framebuffer上绘制文本

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

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

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

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

我认为最好的方法是使用位图字体: http : //www.iua.upf.es/~ggeiger/redbookhtml/ch09.html 。 本教程适用于OpenGL,但您可能会发现很多有用的信息。

要在二维数组上绘制一条线,请使用Besengam算法 。

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

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