2012-05-12 23 views
0

我正在研究針對Linux的應用程序主要目標,它使用TTF字體。我需要字體的文件名和路徑,因爲我必須使用SDL函數TTF_OpenFont(char * file,...)加載它。問題是在不同的發行版上有很多不同的TTF字體目錄。哪個是處理這個問題的最好方法?我已經想出了一些solutution,但對我來說他們每個人似乎不理想:如何編寫一個Linux應用程序來查找ttf字體目錄?

  • 包與應用程序一起的字體,並將其安裝到應用程序本身的/ usr /共享/目錄。
  • fc-list : file檢查字體路徑。
  • 對應用程序的每個路徑變體進行硬編碼,並在加載文件時嘗試使用它們。

回答

0

您的第一個和第二個解決方案相當不錯,但最好調用FcFontList函數。第三個是非常不可靠的,但它高度依賴於應用程序類型(在某些情況下可以確定,如果你有這個路徑可由用戶配置)。

+0

我的第一個解決方案的問題是安裝的ttf文件將是多餘的。另一方面,第二種解決方案需要一個新的運行時依賴。 – simon

+0

它完全取決於你想要做什麼。如果你可以依靠用戶安裝一些字體,我看不出爲什麼你不應該使用fontconfig - 它是標準和非常普遍的工具。但是,如果你不能(或者出於某種原因,不願意),或者你使用了非常特殊的字體 - 那麼答案是非常明確的。或者,您可以嘗試使用app目錄中的字體,如果它不包含字體,則需要 - 查詢fontconfig從何處獲取它。 – keltar

+0

你說得對,取決於fontconfig是沒有問題的。感謝您使用FcFontList的建議。 – simon

相關問題