任何人都可以改進?我相當新的python,並試圖編寫可移植的代碼。我需要找到一個字體文件傳遞給ImageDraw.Draw.Text。Python - 查找TTF文件
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會有不同的字體文件命名格式嗎?建議歡迎。
閱讀[文檔](http://matplotlib.org/api/font_manager_api.html)它說它支持多個平臺。我想你可能會花一段時間試圖找出它應該工作的平臺。 您的任何代碼似乎都不依賴於平臺,因此全部取決於matplotlib。 此外,如果任何字體對你有好處,你可以'返回行'。 – ferrix 2013-03-12 17:12:58
你爲什麼不使用matplotlib.font_manager.FontManager? – 2013-03-13 05:44:34
因爲我沒有閱讀完整的文檔。我已經標記了Cristiano的答案,但我可能會使用FontManager。感謝那。 – Dorsey 2013-03-13 14:58:45