程序如何在映射为数组的帧缓冲区上绘制文本?所需要的是一种表示单个字符的方法,以及以一种不太低效的方式逐个像素地绘制字符的方法。理想情况下,字符的表示应仅在代码中定义,不需要第三方库。
有没有人知道在自由许可下可用的代码?或者是为程序代码中使用的字体生成数据定义的工具,例如位图字形/字符值数组?
程序如何在映射为数组的帧缓冲区上绘制文本?所需要的是一种表示单个字符的方法,以及以一种不太低效的方式逐个像素地绘制字符的方法。理想情况下,字符的表示应仅在代码中定义,不需要第三方库。
有没有人知道在自由许可下可用的代码?或者是为程序代码中使用的字体生成数据定义的工具,例如位图字形/字符值数组?
我没有任何特定于帧缓冲区的信息,但我确实有一种有趣的字体编码方式。
如果您有一个可以写入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);