nodejs – graphicMagick – imageMagick – “参数无效 – – 大小\ r \ n”

我正在尝试使用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]) }); 

它不会显示此微观修复后的path错误。 但它给了我另一个错误:

 { '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”出现?

更新

我在这里logging我的问题: 无效参数 ,我find了一个方法来破解它。 但是我仍然很好奇为什么他们的样本不工作。

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

  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); } }); }); 

这个黑客应该摆脱错误信息,但我也想知道为什么会导致原来的方法错误。

不知道深入的graphicmagick和nodejs。 我的答案很可能是错的。

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

你运行“npm init”创build你的包文件吗? 如果你的软件包位于计算机的其他地方?

unix = / windows使用= \

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

你可能会尝试把完整path的例子:

C:\ yadayada \亚达\哞\ DOOO \ image.jpg的

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

C:\ yadayada \亚达\哞\ DOOO \ resize.jpg

看看会发生什么