使用Python在Linux系统上为每种字体生成图片

5 投票
2 回答
987 浏览
提问于 2025-04-15 19:58

我想找到一种方法,列出在Linux/Debian系统上安装的所有字体,然后用这些字体生成一些字符串的图片。我对每个部分的做法有点了解,但不知道怎么把两者结合起来:

  1. 要列出UNIX系统上的所有字体,可以用xlsfonts这个命令:

    import os
    list_of_fonts=os.popen("xlsfonts").readlines()

  2. 要把字符串渲染成图片,可以使用PIL(Python图像库)和ImageFont这个类。

不过,ImageFont.load需要一个文件名,而xlsfonts提供的是一种标准化的字体名称,这两者之间的对应关系似乎不太明显(我试着在系统中搜索与xlsfonts输出相同名称的文件,但没有找到)。

有没有人知道我该怎么做呢?谢谢!

2 个回答

1

你最好的办法是先在系统上查找所有的字体,然后对找到的字体列表使用 ImagesFont.load()。我不太清楚在Debian系统上字体存放在哪里,但它们应该在一个大家都知道的文件夹里。你可以用 os.walk 来遍历这个文件夹,然后把找到的文件名传进去。

1

你可以通过pygtk这个包来使用pango。pango可以列出字体并把它们显示出来。

撰写回答