Windows Shell中的ImageMagick命令替换

时间:2013-05-02 08:27:55

标签: windows shell imagemagick dos

如何将以下imagemagick命令转换为在DOS中使用?据我所知,我不能直接转换它,必须在批处理文件中使用for循环,但到目前为止没有成功。

convert noisy.jpg -crop `convert noisy.jpg -virtual-pixel edge -blur 0x15 -fuzz 15% -trim -format '%wx%h%O' info:` +repage noisy_trimmed_2.jpg

3 个答案:

答案 0 :(得分:1)

您需要for命令才能捕获要作为参数传递的命令的输出。它可以通过说:

挤成一行
for /f "usebackq delims=" %%info in (`convert noisy.jpg -virtual-pixel edge -blur 0x15 -fuzz 15% -trim -format '%wx%h%O' info:`) do convert noisy.jpg -crop %%info +repage noisy_trimmed_2.jpg

答案 1 :(得分:1)

最好将convert.exe重命名为imgConvert.exe,以免与Windows转换实用程序冲突。否则,您应该从可执行文件所在的目录运行它,或者指定路径或使用环境变量来访问它。

执行convert.exe需要vcomp100.dll。

DOS不喜欢单引号(')。使用双引号(“),其中需要引号。

答案 2 :(得分:0)

无论如何,我得到它像这样工作,@ devnull的答案是有帮助的,但我没有使用“usebackq delims =”。你还需要在每个之前多放一个%来逃避%。

FOR /F %%A IN ('convert xxx.jpg -virtual-pixel edge -blur 0x15 -fuzz 15%% -trim -format "%%wx%%h%%O" info:') DO convert xxx.jpg -crop %%A +repage yyy.jpg