我想要做的是暂时将一种特定字体切换到另一种字体,然后再切换回来。这样我就可以在任何游戏或软件中看到所需的字体。我想知道这样的事情是否存在,或者是否可以通过编程实现。
答案1
如果你想要设置全部如果您将整个系统(包括游戏等应用程序内)的字体设置为一种特定的字体或字体系列,那么不幸的是,答案是否定的,这是不可能的。
每个程序(从文档查看器到浏览器再到游戏)都有自己的字体设置,即使允许您自定义字体设置的程序也会对可使用的字体类型(文件格式)有所限制。更不用说,这些程序通常依靠内部设置来设置默认字体。
许多其他应用程序都依赖于专有格式的内置字体,而且很多时候(尤其是在游戏中)当您查看菜单或带有文本的内容时,您实际上是在查看文本的渲染图像(以便可以在文本上渲染效果,例如复杂的高亮或过渡效果)。因此,如果不替换图像本身,就无法更改这些字体。
抱歉,这不是一个更令人满意的答案。
答案2
有可能的。
首先,可以全局执行,方法是设置字体替代品在 Windows 注册表中。这是微软文档。基本上,你转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
并添加一个字符串条目。键是原始字体,值是你想要更改为的字体名称。重新启动后,它就可以正常工作了。我在 Vista 下测试过。
其次,还有一种更简单的非全局解决方案,称为图形接口++,它允许您在其配置文件中写入这些设置,gdi++.ini
如下所示:
[FontSubstitutes]
Courier New=Arial
之后,你将程序可执行文件拖到上面gdi++.exe
,它就会以替换的形式运行。有时它不起作用,可能是因为目标程序使用了它自己的渲染方法。
然后我建议使用麦金塔。它源自下面的 GDI++。它有点复杂,但提供了切换/设置配置文件的良好 UI。配置文件配置中有一个字体切换。启用设置并设置替代项,它就可以在程序上正常工作。
答案3
我不相信有人可以通过这种方式切换字体。
字体文件包含大量元信息,Windows/Linux 使用这些信息来查找与程序请求的字体最匹配的字体。
没有办法将元信息从一种字体转移到另一种字体。必须将两个字体文件合并为一种新字体:一个字体包含元信息,另一个字体包含字形,并修正字符尺寸、字距和其他信息。换句话说:创建一个与真实字体具有相同特征但使用其他字形的假字体,然后重命名真实字体并用新字体替换它。
所付出的努力与自己创建新字体相当,这是一项艰巨的工作。参见创建您自己的字体。