【发布时间】:2011-08-12 05:13:04
【问题描述】:
我正在通过 node.js 调用 imagemagick 脚本,但命令中断,但我不知道为什么。
我正在尝试做的一个简化示例:
var spawn = require('child_process').spawn,
ls = spawn('convert', ['-size', '168x45', 'xc:transparent', '-draw', '"image over 0,0 0,0 \'/path/to/img1.png\'"', '/path/to/out.png']);
ls.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
如果我运行那个确切的命令(唯一改变的是路径,因为它们是绝对的),我会在 stderr 上得到:
"convert: non-conforming drawing primitive definition `image over 0,0 0,0 '/path/to/img1.png'' @ error/draw.c/DrawImage/3145."
根据一些论坛,这通常意味着 IM 由于路径无效等原因无法打开图像......现在奇怪的是,如果我将 convert 更改为 echo 并在前面添加convert我得到以下命令:
convert -size 168x45 xc:transparent -draw "image over 0,0 0,0 '/path/to/img1.png'" /path/to/out.png
直接从 bash 运行时效果很好。
有什么想法吗?
更多信息:
- 我刚刚从图像目录中尝试了这个,并删除了路径(所以它是
image over ... img1.png),我得到了同样的错误。 - 以同样的方式运行
pwd会给我相应的目录
【问题讨论】:
标签: javascript node.js imagemagick