跨平台获取可用字体列表的方法?

时间:2013-02-23 21:14:57

标签: c++ linux windows freetype

如何获取可用字体列表?

如果我不必依赖巨大的东西,我会更好。

到目前为止,我的解决方案是列出Linux上的目录/usr/share/fonts和Windows上的C:\Windows\Fonts。这是正确的方法吗?

2 个答案:

答案 0 :(得分:2)

不,这不是正确的方法。然而,问题是确实没有正确的方法,没有像freetype这样的标准化,或者为不同的操作系统编写自己的大量后端库。

更清楚:大多数操作系统都有位图字体,轮廓字体,不同的字体编码,各种其他字体格式,但不支持,或者通过一些额外的插件,非字母字体支持(想想Wingdings,棋子等),彩色字体,TeX字体,postscript字体,3D字体等。

此外,您甚至可能没有标准的列出方式。例如,大多数操作系统按名称和大小列出字体,但X Window系统传统上列出了许多列标题的字体,包括它们的重量,无论是sans / serif,固定/可变间距,斜体与倾斜等等

此外,您遇到的问题包括用户字体与系统范围的字体,甚至网络字体,字体服务器以及现在的网络字体。

简而言之,字体很复杂。出于这样的原因,像freetype这样的库存在。我建议只使用一个。

但是,如果你想要一个更快,更黑的解决方案,那么列出这些目标是一个开始。你可能应该提到两种方法,你提到两种可能的后端,为Linux与Windows选择默认后端,但也许可以列出/ usr / share / X11 / fonts,或者通过defoma列出字体。

答案 1 :(得分:1)

嗯......我会使用OpenGL和默认(保证)字体,可以找到一个列表HERE

或者我会看看这些链接:

  1. Platform independent way to get font directory?
  2. Fonts in a multi-platform environment
  3. OpenGL Font tutorial
  4. 或者您可以使用图形库(SDL,OpenGL)和BITMAP,其中包含字体...并将其用于文本! :)

    祝你好运,我希望你能找到你想要的东西!