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

问题描述:

如何在Windows命令行中使用Python调用ImageMagick的​​3210以下命令?使用Python通过Windows命令行在特定的.gif上调用`ImageMagick`s` -coalesce`

目前,我正在使用以下行切换到桌面目录,然后在桌面上存在的.gif文件(“on.gif”)上运行ImageMagick的“合并”功能。此命令打破了.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命令行。

+0

我的答案是否解决了您的问题?如果是这样,请考虑接受它作为您的答案 - 通过点击投票计数旁边的空心绿色勾号/复选标记。如果没有,请说出什么不起作用,以便我或其他人可以进一步帮助您。谢谢。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

每个os.system()开始一个新的,单独的过程。因此,在第一个目录中更改目录并且然后启动另一个在不同目录中运行的进程是没有用的。

相反,您需要更改目录,做你的命令,在同一过程是这样的:

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

如果您somehwere中有空格,则需要它括在双引号:

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

如果Python不知道路径ImageMagick的convert,你将需要把完整路径明确,是这样的:

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

这是有帮助的,我不知道。我仍然收到上面提到的“无图像定义”错误。 – AaronJPung

+0

你的目录或文件名有空格吗?如果是这样,你需要双引号('“...”')在他们周围。 –

+0

此外,您可能没有正确设置PATH,以便'python'可以找到'convert.exe',因此您可能需要完整路径,例如''C:\ Programs X86 \ ImageMagick \ bin \ convert“。 。东西' –