1
我有一个imagemagick脚本,我需要在节点中使用。它适用于child_process.exec函数。我不确定如何将它发送给exec命令,所以我试图使用产卵。child_process.spawn在参数中带括号
这工作正常。没问题。
var spawn = require('child_process').spawn;
var args = [
'-',
'-resize',
'50%',
'./blank.png',
'-composite',
'-'
];
var convert = spawn('convert', args);
现在的问题是我需要分离出blank.png图像并对其应用转换。 Image Magick没有问题。 http://www.imagemagick.org/Usage/basics/#parenthesis
因此,开始使它看起来像这样。
convert image.jpg \
\(blank.png -resize 50% \) -gravity center -composite -composite output.jpg
我不能用nodejs中的spawn args得到这个结果。 我试过类似的东西。
var args = [
'-',
'\(',
'./blank.png',
'-resize',
'50%',
' \),
'-composite',
'-'
];
var args = [
'-',
'(',
'./blank.png',
'-resize',
'50%',
'),
'-composite',
'-'
];
var args = [
'-',
'\(./blank.png -resize 50% \)',
'-composite',
'-'
];
没有什么似乎工作。他们都将错误的参数传递给函数。我只是得到转换错误。有任何想法吗?
固定
var args = [
'-',
'-resize',
'100%',
'(',
'./blank.png',
'-resize',
'50%',
')',
'-composite',
'-'
];
我不*说* node-ish,但反斜杠是为了保护括号不被shell解释 - 是否有可能在这里没有涉及的shell,并且你不需要它们? – 2015-02-10 13:27:24
问题是我需要他们告诉图像magick将转换仅应用于blank.png图像,而不是从流中传入的图像。 – 2015-02-10 13:36:00
为什么这会阻止你删除反斜杠? – 2015-02-10 13:52:21