2013-02-23 75 views
1

如何獲取可用字體列表?跨平臺獲取可用字體列表的方式?

如果我不需要依賴巨大的東西,我會更好。

我到目前爲止的解決方案是在Windows上列出目錄/usr/share/fonts,並在Windows上列出C:\Windows\Fonts。這是正確的方式嗎?

回答

2

不,這不是正確的方法。然而,問題在於確實沒有一個正確的方法,缺乏像freetype這樣的標準化,或者爲不同的操作系統編寫擁有大量後端的自己的庫。要更清楚一點:大多數操作系統具有位圖字體,輪廓字體,不同的字體編碼,各種其他字體格式的出現,但不被支持,或通過一些額外的插件,非字母字體(想象Wingdings,棋子等),彩色字體,TeX字體,postscript字體,3D字體等。

此外,您甚至可能沒有列出它們的標準方式。例如,大多數操作系統按名稱和大小列出字體,但X Window System傳統上通過很多列標題列出了字體,包括它們的重量,無論是sans/serif,固定/可變間距,斜體還是傾斜等等

FURTHERMORE,你有像用戶字體與系統範圍的字體,甚至網絡字體,字體服務器,現在網絡字體的問題。

總之,字體很複雜。這是因爲這樣的原因,像freetype這樣的圖書館存在。我建議只使用一個。

但是,如果你想要一個更快,更駭人的解決方案,那麼列出這些dirs是一個開始。例如,您應該提供兩種方法來提供兩種可能的後端,即爲Linux和Windows選擇默認後端,但可能會列出/ usr/share/X11/fonts,或者通過defoma列出字體。

+3

但是,freetype不提供字體列表facilityies,是嗎? – 2013-02-24 15:41:43

1

嗯......我會用OpenGL和默認的(保證)字體,可以發現一個列表HERE

或者我會看看這些鏈接:

  1. Platform independent way to get font directory?
  2. Fonts in a multi-platform environment
  3. OpenGL Font tutorial

或者您可以使用圖形庫(SDL,OpenGL)和BITMAP,並在其中使用字體...並將其用於文本! :)

祝你好運,我希望你找到你要找的東西!

+0

或者你可以繼續你的路徑和ifndef _WIN32,_APPLE_,linux || _linux_,並查閱操作系統的FONT目錄(你知道Windows/Linux的文件夾,但Mac的是「/ System/Library/Fonts」和「/ Library/Fonts」)! – Mitch 2013-02-23 21:35:39