首页 > 解决方案 > PIL:我可以有多种尺寸的相同字体的文本吗?(Python)

问题描述

目前正在尝试为具有 PIL 但大小不同的图像使用相同的字体。

试图有两个不同的字体实例,但它没有工作。我怎样才能做到这一点?

标签: pythonpython-imaging-library

解决方案


如果您使用ImageFont.truetype(),您将需要多个实例以用于多种尺寸。

您可以使用它巧妙地包装它,functools.lru_cache()以便在您的应用程序期间仅加载一次单一字体/大小:

from functools import lru_cache

get_font = lru_cache()(ImageFont.truetype)

draw.text((10, 10), "hello", font=get_font("Arial.ttf", 10))
draw.text((10, 50), "world", font=get_font("Arial.ttf", 50))

推荐阅读