使用 Python 通过 Windows 命令行在特定的 .gif 上调用 `ImageMagick` 的 `-coalesce`

Using Python to call `ImageMagick`s `-coalesce` on a particular .gif via Windows command line

如何使用 Python 在 Windows 命令行中为以下命令调用 ImageMagick 的 coalesce

目前,我正在使用以下行更改到桌面目录,然后 运行 ImageMagick 的 "coalesce" 函数在桌面上存在的 .gif 文件上("on.gif").此命令将 .gif 文件分成单独的帧保存到桌面(off0.png、off1.png、off2.png、...)

os.system('cd C:\...\Desktop')
os.system('convert on.gif -coalesce off%d.png')

但它给我一个错误:convert: no images defined 'off%d.gif' @ error/convert.c/COnvertImageCommand/3235。当我在 运行 Windows shell 中使用此命令时,它工作正常。我认为错误在于我如何将 % 符号传递给 windows 命令行。

每个 os.system() 都会启动一个新的独立进程。因此,首先更改目录然后在另一个目录中启动另一个 运行 进程是没有用的。

相反,您需要更改目录并在同一进程中执行命令,如下所示:

os.system('cd somewhere && convert something ...')

如果您的 somehwere 中有空格,您需要用双引号将其括起来:

os.system('cd "C:\Users\path with space" && convert ...')

如果 Python 不知道 ImageMagickconvert 的路径,您需要显式输入完整路径,例如:

os.system('cd somewhere && "C:\Programs X86\Imagemagick7.0.2\convert" ... ')