2009-12-08 44 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,但您可能會找到很多有用的信息。