有人可以改进吗?我对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 会有不同的字体文件命名格式吗?欢迎提出建议。