【问题标题】:NodeJs, Spawn convertNodeJs,Spawn 转换
【发布时间】:2016-11-06 01:51:10
【问题描述】:

我想使用spawn节点内执行convert
此命令运行没有任何错误:

var args = [
  'img1.jpg',
  'img2.jpg',
  '-gravity', 'center',
  '-composite', '-'
];

var ls = spawn('convert',args);
ls.stderr.on('data', function (data) {
   console.log('stderr: ' + data);
});

但是当我尝试这个时:

var args = [
  'img1.jpg',
  '\\( img2.jpg -resize 10x10 \\)',
  '-gravity', 'center',
  '-composite', '-'
];
var ls = spawn('convert',args);
ls.stderr.on('data', function (data) {
   console.log('stderr: ' + data);
});

得到这个错误:

stderr: convert: unable to open image `\( img2.jpg -resize 10x10 \)': No such file or directory @ error/blob.c/OpenBlob/2702.
convert: no decode delegate for this image format `JPG -RESIZE 10X10 \)' @ error/constitute.c/ReadImage/504.
convert: no images defined `-' @ error/convert.c/ConvertImageCommand/3257.

【问题讨论】:

    标签: javascript node.js imagemagick spawn


    【解决方案1】:

    我找到了答案: 参数必须全部拆分:

    var args = [
      'img1.jpg',
      '\\(','img2.jpg','-resize','10x10','\\)',
      '-gravity', 'center',
      '-composite', '-'
    ];
    

    【讨论】:

    • 不错!我在使用 .execFile 时遇到了类似的问题。我的问题是我将“-resize 10x10”作为一个数组项而不是将它们分成两个参数的参数。
    猜你喜欢
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 2018-12-20
    • 2019-06-05
    • 2016-06-07
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多