【发布时间】:2015-02-10 12:55:17
【问题描述】:
我有一个需要在 node.js 中使用的 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',
'-'
];
【问题讨论】:
-
我不会 speak 节点式,但是反斜杠是为了保护括号不被 shell 解释 - 这里可能没有涉及到 shell而你不需要它们?
-
问题是我需要他们告诉 image magick 仅将转换应用于 blank.png 图像,而不是来自流的图像。
-
为什么这会阻止您删除反斜杠?
-
哦,哇,我现在明白了。我没有在括号里加空格!谢谢!
-
感谢您的“固定”示例。我的问题是尝试在括号前使用反斜杠转义。
标签: node.js imagemagick