【发布时间】:2013-02-23 21:14:57
【问题描述】:
如何获取可用字体列表?
如果我不必依赖巨大的东西,我会更好。
到目前为止,我的解决方案是在 linux 上列出目录 /usr/share/fonts,在 Windows 上列出 C:\Windows\Fonts。这是正确的做法吗?
【问题讨论】:
标签: c++ linux windows freetype
如何获取可用字体列表?
如果我不必依赖巨大的东西,我会更好。
到目前为止,我的解决方案是在 linux 上列出目录 /usr/share/fonts,在 Windows 上列出 C:\Windows\Fonts。这是正确的做法吗?
【问题讨论】:
标签: c++ linux windows freetype
不,这不是正确的方法。然而,问题在于实际上没有正确的方法,没有像 freetype 这样的标准化或编写自己的库,其中包含针对不同操作系统的大量后端。
要更清楚一点:大多数操作系统都有位图字体、轮廓字体、不同的字体编码、各种其他字体格式,但这些字体格式并没有得到很好的支持,或者通过一些额外的插件得到支持,非字母字体 (想想 Wingdings、棋子等)、彩色字体、TeX 字体、postscript 字体、3D 字体等。
此外,您甚至可能没有列出它们的标准方法。例如,大多数操作系统按名称和大小列出字体,但 X Window 系统传统上按许多列标题列出字体,包括它们的粗细、是否是无衬线、固定/可变间距、斜体与斜体等.
此外,您还遇到了诸如用户字体与系统范围字体、甚至网络字体、字体服务器以及现在的网络字体之类的问题。
简而言之,字体很复杂。正是出于这样的原因,才有了像 freetype 这样的库。我建议只使用一个。
但是,如果您确实想要一个更快、更 hackish 的解决方案,那么列出这些目录就是一个开始。您可能应该使用您提到的两种可能的后端,为 Linux 与 Windows 选择默认后端,但也许可以列出 /usr/share/X11/fonts 或通过 defoma 列出字体的可能性,例如。
【讨论】:
嗯...我会使用 OpenGL 和默认(保证)字体,可以在 HERE 找到一个列表。
或者我会看看这些链接:
或者您可以只使用一个图形库(SDL、OpenGL)和一个 BITMAP,其中包含字体......并将其用于文本! :)
祝你好运,我希望你找到你要找的东西!
【讨论】: