簡體   English   中英

如何從字體名稱 [python] 獲取字體路徑?

[英]How to get font path from font name [python]?

我的目標是從它們的通用字體名稱中獲取字體路徑,然后將它們與PIL.ImageFont一起使用。

我通過使用tkinter.font.families()獲得了所有已安裝 fonts 的名稱,但我想獲得每種字體的完整路徑,以便我可以將它們與PIL.ImageFont一起使用。 有沒有其他方法可以通過ImageFont.truetype()方法使用通用字體名稱?

我不太確定你真正想要什么 - 但這里有一種方法可以獲取系統上所有 fonts 的完整路徑及其名稱和權重的列表:

#!/usr/bin/env python3

import matplotlib.font_manager
from PIL import ImageFont

# Iterate over all font files known to matplotlib
for filename in matplotlib.font_manager.findSystemFonts(): 
    # Avoid these two trouble makers - don't know why they are problematic
    if "Emoji" not in filename and "18030" not in filename:
        # Look up what PIL knows about the font
        font = ImageFont.FreeTypeFont(filename)
        name, weight = font.getname()
        print(f'File: {filename}, fontname: {name}, weight: {weight}')

樣品 Output

File: /System/Library/Fonts/Supplemental/NotoSansLepcha-Regular.ttf, fontname: Noto Sans Lepcha, weight: Regular
File: /System/Library/Fonts/ZapfDingbats.ttf, fontname: Zapf Dingbats, weight: Regular
File: /System/Library/Fonts/Supplemental/Zapfino.ttf, fontname: Zapfino, weight: Regular
File: /System/Library/Fonts/Supplemental/NotoSansMultani-Regular.ttf, fontname: Noto Sans Multani, weight: Regular
File: /System/Library/Fonts/Supplemental/NotoSansKhojki-Regular.ttf, fontname: Noto Sans Khojki, weight: Regular
File: /System/Library/Fonts/Supplemental/Mishafi Gold.ttf, fontname: Mishafi Gold, weight: Regular
File: /System/Library/Fonts/Supplemental/NotoSansMendeKikakui-Regular.ttf, fontname: Noto Sans Mende Kikakui, weight: Regular
File: /System/Library/Fonts/MuktaMahee.ttc, fontname: Mukta Mahee, weight: Regular
File: /Users/mark/Library/Fonts/JetBrainsMonoNL-Italic.ttf, fontname: JetBrains Mono NL, weight: Italic
...
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM