获得可用字体列表的跨平台方式

Crossplatform way to get a list of available fonts?

本文关键字:跨平台 方式 列表 字体      更新时间:2023-10-16

如何获取可用字体的列表?

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

到目前为止,我的解决方案是在linux上列出目录/usr/share/fonts,在windows上列出目录C:WindowsFonts。这样做对吗?

不,这不是正确的方式。然而,问题是,除了对freetype之类的东西进行标准化,或者为不同的操作系统编写具有大量后端的自己的库之外,真的没有正确的方法。

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

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

此外,您还遇到了一些问题,比如用户字体与系统字体,甚至网络字体、字体服务器,以及现在的网络字体。

简而言之,字体很复杂。正是由于这样的原因,像freetype这样的库才得以存在。我建议只用一个。

但是,如果你确实想要一个更快、更黑客的解决方案,那么列出这些dirs就是一个开始。您可能应该使用您提到的两种方法,即两种可能的后端,分别为Linux和windows选择默认后端,但可能会列出/usr/share/X11/font,或者通过defoma列出字体。

嗯。。。我会使用OpenGL和默认(保证(字体,它们的列表可以在这里找到

或者我会看看这些链接:

  1. 独立于平台的方式获取字体目录
  2. 多平台环境中的字体
  3. OpenGL字体教程

或者你可以只使用一个图形库(SDL、OpenGL(和一个BITMAP,其中包含字体……并将其用于文本!:(

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