gpt4 book ai didi

Python - 查找 TTF 文件

转载 作者:行者123 更新时间:2023-11-28 18:49:22 26 4
gpt4 key购买 nike

有人可以对此进行改进吗?我是 python 的新手,正在尝试编写可移植代码。我需要找到一个字体文件以传递给 ImageDraw.Draw.Text。

import matplotlib.font_manager as fontman

def findFontFile(searchFont):
fList = fontman.findSystemFonts(fontpaths=None, fontext='ttf')
targetFont = []
for row in fList:
try:
if searchFont in row:
targetFont.append(row)
except TypeError:
pass
return targetFont[0]

在我的系统上,这给了我:

>>> findFontFile('DejaVuSans.ttf')
'/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf'

这正是我所需要的。这看起来是否适用于 Mac/Windows 系统以及 Linux(在 Linux 上测试过)?可以更有效地完成吗?以更具可读性的风格? Mac/Windows 会有不同的字体文件命名格式吗?欢迎提出建议。

最佳答案

我会做一些重写(有些更改只是样式问题,更像 python):

   def find_font_file(query):
matches = list(filter(lambda path: query in os.path.basename(path), fontman.findSystemFonts()))
return matches

然后调用者将决定要使用的元素(在检查权限等之后)。

至于兼容性可以查看here该库使用一组用于“主要”操作系统的通用目录来搜索字体(X 窗口管理器 (linux)、windows 和 os x)。但是,如果您有关于应用程序运行的不同环境的更多信息,您始终可以传递要搜索的目录。

关于Python - 查找 TTF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com