使用Python在Linux系统上为每种字体生成图片
我想找到一种方法,列出在Linux/Debian系统上安装的所有字体,然后用这些字体生成一些字符串的图片。我对每个部分的做法有点了解,但不知道怎么把两者结合起来:
要列出UNIX系统上的所有字体,可以用
xlsfonts
这个命令:import os
list_of_fonts=os.popen("xlsfonts").readlines()要把字符串渲染成图片,可以使用PIL(Python图像库)和
ImageFont
这个类。
不过,ImageFont.load
需要一个文件名,而xlsfonts
提供的是一种标准化的字体名称,这两者之间的对应关系似乎不太明显(我试着在系统中搜索与xlsfonts
输出相同名称的文件,但没有找到)。
有没有人知道我该怎么做呢?谢谢!
2 个回答
1
你最好的办法是先在系统上查找所有的字体,然后对找到的字体列表使用 ImagesFont.load()
。我不太清楚在Debian系统上字体存放在哪里,但它们应该在一个大家都知道的文件夹里。你可以用 os.walk
来遍历这个文件夹,然后把找到的文件名传进去。
1
你可以通过pygtk这个包来使用pango。pango可以列出字体并把它们显示出来。