【问题标题】:Crossplatform way to get a list of available fonts?跨平台获取可用字体列表的方法?
【发布时间】:2013-02-23 21:14:57
【问题描述】:

如何获取可用字体列表?

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

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

【问题讨论】:

    标签: c++ linux windows freetype


    【解决方案1】:

    不,这不是正确的方法。然而,问题在于实际上没有正确的方法,没有像 freetype 这样的标准化或编写自己的库,其中包含针对不同操作系统的大量后端。

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

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

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

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

    但是,如果您确实想要一个更快、更 hackish 的解决方案,那么列出这些目录就是一个开始。您可能应该使用您提到的两种可能的后端,为 Linux 与 Windows 选择默认后端,但也许可以列出 /usr/share/X11/fonts 或通过 defoma 列出字体的可能性,例如。

    【讨论】:

    • 但是 freetype 不提供字体列表工具,是吗?
    【解决方案2】:

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

    或者我会看看这些链接:

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

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

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

    【讨论】:

    • 或者你可以继续你的路径和ifndef WIN32, _APPLE, linux || linux,并查阅操作系统的 FONT 目录(您知道 Windows/Linux 的文件夹,但 Mac 的文件夹是“/System/Library/Fonts”和“/Library/Fonts”)!
    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    相关资源
    最近更新 更多