如何让 moviepy 能够访问 Windows 上自定义安装的字体?

eag*_*ntt 0 python windows imagemagick python-3.x moviepy

我一直在互联网的深处寻找,但仍然找不到任何东西。当我执行时

print(TextClip.list("font"))
Run Code Online (Sandbox Code Playgroud)

我的自定义安装字体不可用。经过一番研究,我认为这可能与 ImageMagick 无法识别我安装的字体有关。当我研究时,大多数文档都是针对 Mac/Linux 的,因为 Windows 应该允许所有应用程序使用已安装的字体,因此 ImageMagick 应该能够识别它。

以前有人遇到过这个问题吗?

我预计

clip = TextClip("text", color='black', font='PKMN RBYGSC Regular',
                   fontsize=32, )
Run Code Online (Sandbox Code Playgroud)

使用我安装的字体“PKMN RBYGSC Regular”。我已经尝试了该名称的所有迭代,例如:“PKMN-RBYGSC-Regular”、“PKMN_RBYGSC_Regular”、r“C:\Windows\Fonts\PKMN_RBYGSC.ttf”等。

结果是使用默认字体的电影。我读到这与 ImageMagick 有关

Abh*_*hra 7

是的你是对的。您必须使用 ImageMagicK 来完成此操作。在 Windows 上,转到 ImageMagicK 安装文件夹并找到 type-ghostscript.xml 文件。

只需在标签中添加自定义字体即可。例如,如果你想添加 Poppins 字体,那么你必须使用

<type name="Poppins" fullname="Poppins" family="Poppins" style="normal" weight="400" stretch="normal" format="type1" metrics="C:\Users\Downloads\Poppins\Poppins-Regular.ttf" glyphs="C:\Users\Downloads\Poppins\Poppins-Regular.ttf" />
Run Code Online (Sandbox Code Playgroud)

以管理员身份保存此文件。

然后,这样做

clip = TextClip("text", color='black', font='Poppins',
                   fontsize=32)
Run Code Online (Sandbox Code Playgroud)