![如何找出用于在屏幕上显示某些特定文本的字体的名称?](https://linux22.com/image/1074341/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%E7%94%A8%E4%BA%8E%E5%9C%A8%E5%B1%8F%E5%B9%95%E4%B8%8A%E6%98%BE%E7%A4%BA%E6%9F%90%E4%BA%9B%E7%89%B9%E5%AE%9A%E6%96%87%E6%9C%AC%E7%9A%84%E5%AD%97%E4%BD%93%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
我想要一个可以在我的电脑上运行的东西,它可以以某种方式询问 X 并告诉我确切地字体,不是猜测。
答案1
我认为没有通用的解决方案。一旦文本被渲染,系统的任何组件就没有理由保留它从哪种字体渲染的信息。所以你必须以某种方式观察程序何时渲染文本。无论如何,如何获取信息取决于渲染引擎。
大多数程序通过字体配置库进行渲染。如果您启动使用字体配置的程序并将FC_DEBUG
环境变量设置为合适的值,它将显示有关正在加载的字体的一些信息,但不会显示正在使用哪种字体来渲染哪些文本。不过,请尝试运行FC_DEBUG=2053 myprogram
。请参阅/usr/share/doc/fontconfig/fontconfig-user.txt.gz
了解 的含义$FC_DEBUG
。
传统的 unix 程序使用 X 服务器管理的位图字体来呈现文本。然后,您可以通过监视 X 协议对话并观察 和一些其他消息来查看使用哪种字体来呈现哪些文本OpenFont
。ImageText
我没有现成的工具可以推荐。
如果您只对某个特定应用程序感兴趣,那么可能有针对该应用程序的更好的方法。
答案2
这里有一个识别字体的很好的资源: