nodejs - graphicMagick- imageMagick - “无效参数 - -resize \ r \ n”

时间:2016-05-25 21:52:04

标签: javascript node.js

我正在尝试使用graphicmagick制作原始图像的缩略图, 我正在尝试GM Resize中的一个例子:

var gm = require('gm').subClass({
    imageMagick: true
});

var currentDir = __dirname + "\\imgs";

//var gm = require('gm');

console.log(currentDir);

gm(currentDir + "\\Balls.jpg")
    .resize(58, 50, '%')
    .write(currentDir+"\\newImage.jpg", function (err) {
            if (err) return console.dir(arguments)
            console.log(this.outname + " created  ::  " + arguments[3])
    });

此微修复后,它不会显示路径错误。但它给了我另一个错误:

{ '0':
   { [Error: Command failed: Invalid Parameter - -resize
   ] code: 4, signal: null },
  '1': '',
  '2': 'Invalid Parameter - -resize\r\n',
  '3': 'convert "C:\\Users\\ltang\\Documents\\GitHub\\testMyGM\\imgs\\Balls.jpg" "-resize" "58x50%" "C:\\Users\\ltang\\Documents\\GitHub\\testMyGM\\imgs\\newImage.jpg"' }

任何人都知道为什么会出现“resize \ r \ n”?

更新

我在这里记录我的问题:Invalid Parameter,我找到了一种方法来破解它。但我仍然对他们的样本无效的原因感到好奇。

2 个答案:

答案 0 :(得分:1)

我破解了这个问题,我的黑客可以分两步完成:

  1. 更改导入包的方式:

    var gm = require('gm').subClass({
    imageMagick: true});
    
  2. 在.size()函数中定义.resize()函数:

    gm(response).size(function(err, size) {
          var scalingFactor = Math.min(myWidth /size.width, myWidth / size.height);
          var width = scalingFactor * size.width;
          var height = scalingFactor * size.height;
          var index = key;
          this.resize(width, height).toBuffer(
                 'JPG', function(err,
                       buffer) {
                       if (err) {
                           next(err);
                       } else {
                           next(null, buffer, key);
                       }
         });    });
    
  3. 这个hack应该摆脱错误信息,但我也想知道它为什么会导致原始方法的错误。

答案 1 :(得分:0)

不深入了解graphicmagick和nodejs。我的回答很可能是错误的。

c:/ users / xxx / appdata / roaming / npm / npm_cache或类似的东西,你可能会找到输出。

你跑了" npm init"创建包文件?如果您的包裹位于计算机上的其他位置?

unix = / windows uses = \

您也可以尝试./或。\或../或.. \

您可能会尝试使用完整路径示例:

c:\ yadayada \ yada \ moo \ dooo \ image.jpg

看看会发生什么。 然后为你的.write做同样的事情

C:\ yadayada \矢田\も\ DOOO \ resize.jpg

看看会发生什么。