使用Python在linux系统上为每个字体生成图像

使用Python在linux系统上为每个字体生成图像,python,linux,fonts,debian,python-imaging-library,Python,Linux,Fonts,Debian,Python Imaging Library,我正在寻找一种方法来列出linux/Debian系统上安装的所有字体,然后使用这些字体生成一些字符串的图像。我正在寻求您的建议,因为我知道如何完成每一部分,但不要同时完成这两部分: 要列出UNIX系统上的所有字体,xlsfonts可以做到以下几点: 导入操作系统 字体列表=os.popen(“xslfonts”).readlines() 要使用字体将字符串渲染成图像,我可以使用PIL(Python图像库)和ImageFont类 但是,ImagesFont.load需要一个文件名,而xlsfont

我正在寻找一种方法来列出linux/Debian系统上安装的所有字体,然后使用这些字体生成一些字符串的图像。我正在寻求您的建议,因为我知道如何完成每一部分,但不要同时完成这两部分:

  • 要列出UNIX系统上的所有字体,
    xlsfonts
    可以做到以下几点:

    导入操作系统
    字体列表=os.popen(“xslfonts”).readlines()

  • 要使用字体将字符串渲染成图像,我可以使用PIL(Python图像库)和
    ImageFont
  • 但是,
    ImagesFont.load
    需要一个文件名,而
    xlsfonts
    提供了一种规范化的字体名,两者之间的对应关系似乎并不明显(我试图在系统中搜索名为
    xlsfonts
    输出的文件,但没有结果)


    有人知道我该怎么做吗?谢谢

    您可以使用pango,通过pygtk包来实现这一点。Pango可以列出字体并进行渲染。

    您最好的办法是对系统上的所有字体执行
    查找
    ,然后对该列表的结果使用
    ImagesFont.load()
    。我不知道Debian上的字体在哪里,但它们应该在一个众所周知的文件夹中。你可以做一个
    os.walk
    ,然后以那种方式输入文件名。

    Debian上有
    /usr/share/fonts
    路径。但是,正如我所说的,并不是所有的东西都是以直接可用的形式存在的。例如,
    xlsfonts
    和一些图形程序返回我有一个名为“nimbus roman”的字体,但唯一名为“nimbus”的文件在我的主文件夹中,而不在该系统目录中(也不在~/.font/文件夹中,只是一个普通文件夹)。因此,我认为这种搜索方式并不可靠。字体的文件名不一定与xlsfonts显示的内容匹配,在某些情况下,一个字体文件可能包含许多字体。