누구나 개선 할 수 있습니까? 나는 파이썬에 상당히 익숙하며 이식 가능한 코드를 작성하려고 노력하고있다. ImageDraw.Draw.Text로 전달할 글꼴 파일을 찾아야합니다. 내 시스템에서파이썬 - 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는 다른 글꼴 파일 명명 형식을 사용합니까? 제안을 환영합니다. 발신자는 다음 (권한 등을 확인 후) 사용하는 요소를 결정하는 것입니다
def find_font_file(query):
matches = filter(lambda path: query in os.path.basename(path), fontman.findSystemFonts())
return matches
:
[documentation] (http://matplotlib.org/api/font_manager_api.html)을 읽으면 여러 플랫폼이 지원됩니다. 나는 당신이 잠시 동안 어떤 플랫폼을 사용해야하는지 알아 내려고 노력할 것이라고 생각합니다. 코드가 플랫폼에 따라 다르므로 matplotlib에 따라 다릅니다. 또한 글꼴이 좋은 경우 행을 반환 할 수 있습니다. – ferrix
왜 matplotlib.font_manager.FontManager를 사용하지 않았습니까? –
전체 설명서를 읽지 않았기 때문에. 나는 Cristiano의 답을 표시했지만, 대신 FontManager를 사용할 것입니다. 고마워. – Dorsey