我有一个我需要在节点中使用的imagemagick脚本。它与child_process.exec函数一起正常工作。我不确定如何将它发送到exec命令,所以我试图使用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',
'-'
];
答案 0 :(得分:1)
您需要转义转义字符。记住' \'也意味着Javascript字符串中的内容。
var args = [
'-',
'\\( ',
'./blank.png',
'-resize',
'50%',
'\\)',
'-composite',
'-'
];
var convert = spawn('convert', args);