使用Python Pillow库添加图片文字时无法加载指定字体的问题
解决PIL设置字体不生效的问题
哦,我发现问题啦!你加载了字体对象,但没把它传给draw.text()方法,所以PIL默认用了系统自带的字体,导致你的字体和字号设置完全没生效~
修正后的代码
from PIL import Image, ImageDraw, ImageFont def writeImage(text): img = Image.new('RGB', (1920, 1080), color=(255,255,255)) draw = ImageDraw.Draw(img) # 加载字体 fnt = ImageFont.truetype("constan.ttf", 36) # 写入文字时必须传入font参数,才能应用自定义字体设置 draw.text((100,100), text, fill=(0,0,0), font=fnt) img.save("recap.jpg")
额外排查提示
- 确认字体文件名完全正确:比如
constan.ttf是不是实际的文件名?注意大小写(Linux/macOS系统对文件名大小写敏感,Windows不敏感)。 - 如果同一目录还是加载失败,可以试试用绝对路径加载字体,避免路径问题:
import os font_path = os.path.join(os.path.dirname(__file__), "constan.ttf") fnt = ImageFont.truetype(font_path, 36) - 检查字体文件是否完好:如果字体文件损坏,PIL可能会静默 fallback 到默认字体,可以换个已知正常的字体文件测试。
内容的提问来源于stack exchange,提问作者FedericoAntosiano




