2016-08-05 136 views
0

我在樹莓派上貼上了一個屏幕。柵格化TTF字體

而不是使用X,我直接將像素數據寫入幀緩衝區。我已經能夠繪製圖像和原始形狀,混合,使用雙緩衝等...

我在哪裏遇到問題是繪製文本。屏幕只是這個級別的一個字節數組,所以我需要一種方法來獲取字體,大小,文本等,並將其轉換爲位圖(實際上,bool[]width/height將是更可取的,因爲它可以節省額外的讀取/寫。

我不知道如何處理這個。

事情我至今認爲...

  • 使用固定寬度字體和地圖集/ spritemap。應工作,我已經可以讀取圖像了,但是等寬字體的視覺吸引力有限,也意味着添加更多字體是很困難的。
  • 使用固定寬度的字體,圖集和掩碼來指示每個字符的位置。將支持可變寬度的字體,但是,縮放將是有損的,它看起來像一個維護噩夢,除非我可以自動生成圖集/掩碼。

有沒有人設法做過這樣的事情?

如果需要一個圖書館,我可以忍受這一點,但因爲這更多的是理解我的Pi而不是一個嚴肅的項目,所以我更喜歡解釋/教程。

+0

PIL(pillow)模塊可以柵格化TrueType字體,因此您可以根據需要使用它來創建字體字符的位圖。 – martineau

回答

0

考慮將Cairo圖形庫用於所有圖形,或作爲生成字體地圖的工具。開羅對使用TTF字體渲染字體以及其他有用的圖形操作提供了廣泛的支持。

在較低的級別上,您也可以使用Freetype庫來加載字體並直接渲染字符。但是,與其合作更加困難。