【发布时间】:2016-04-02 09:33:21
【问题描述】:
FT_New_Face 函数似乎是我正在寻找的函数,但它需要字体文件的路径。我想在不提供路径的情况下打开像“Times New Roman”这样的字体。我该怎么做?
【问题讨论】:
-
您可以将 FT_New_Face 包装到一个接受字体名称而不是路径的函数中。此函数将从设置文件中读取的路径指示可以找到字体的搜索路径。由于您不想一遍又一遍地阅读您的路径,因此通过使其成为仿函数(具有重载 () 的对象)或例如方法使其成为有状态的。一个 FontFinder 类。
-
“Times New Roman”是字体name,但不是字体file的名称。名称字符串在字体文件中。那么当你只给它一个名字时,FreeType 怎么知道要选择什么字体文件呢?您需要在代码中将字体名称翻译成字体文件somewhere。
-
@JacquesdeHooge:如何在磁盘上找到字体?我在我的 Ubuntu 安装中看到一些位于
/usr/share/fonts的字体,这是我应该在所有发行版中查看的位置吗?如何找到系统默认字体? -
@RadLexus:这就是我要问的。一个好的字体系统会使用字体名称,因为这是大多数 API 用户想要的。只有有缺陷的 API 才会要求用户提供系统相关和内部路径(或者更糟糕的是:每个应用程序都有自己的一组字体的老式应用程序)。我希望有一个我错过的更好的函数调用。本着 X 和朋友们的精神,这一切都是关于不在子系统/编码器上推送任何内容,这意味着将所有工作推送给应用程序开发人员。这就是为什么我发现 GNU 如此糟糕而 Linux 如此优秀,并且一直希望 BDFL 来清理他们的行为。
-
啊——看起来即使对于 Ubuntu 也不是那么简单......“GNU/Linux 中有多个位置可以保存字体。[可能的文件夹列表]”@987654322 @.