有人能够改进这个吗?我对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是否有不同的字体文件命名格式?欢迎提出建议。
return row
。 - ferrix