我正在尝试使用ImageMagick调整图像的大小,并且已经引用了this example

我收到此错误:

{ [Error: Command failed: Invalid Parameter - -set
] timedOut: false, killed: false, code: 4, signal: null }


以下是我的代码:

exports.generateThumbnail=function(imageURL,savePath,filename,callback){
    console.log(imageURL);
    console.log(savePath);
    console.log(filename);

    var options = {
       width: 80,
       height: 80,
       srcPath: imageURL,
       dstPath: savePath+"\\thumb_"+filename
    };

    im.resize(options, function(err) {
      if(err) { console.log( err); }
      console.log("Image resize complete");
    });

}


这就是我在控制台中得到的所有内容:

fieldNameHere
{ _readableState:
   { highWaterMark: 16384,
     buffer: [],
     length: 0,
     pipes: null,
     pipesCount: 0,
     flowing: false,
     ended: false,
     endEmitted: false,
     reading: false,
     calledRead: false,
     sync: true,
     needReadable: false,
     emittedReadable: false,
     readableListening: false,
     objectMode: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  domain: null,
  _events: { end: [Function] },
  _maxListeners: 10,
  truncated: false,
  _read: [Function] }
look.png
7bit
image/png
.\Images\bhuwan\media\look.pnglook.png
.\Images\bhuwan\media
look.png
{ [Error: Command failed: Invalid Parameter - -set
] timedOut: false, killed: false, code: 4, signal: null }


另外,我已经尝试了npmjs.org上所有可能的库,包括最受欢迎的库,例如easyimage和node-thumbnail。他们都没有在Windows上工作,并在github上列出了问题。

我在这方面做错什么了?请帮忙。!

编辑:

万一您需要我在其中调用上述方法的代码:

app.post('/uploadImage',function(req,res){
    console.log('Starting to read params');
    var alias=req.query.alias;
    var imagetype=req.query.imagetype;  //can be media/profile
    console.log(alias);
    console.log(imagetype);
    var busboy = new Busboy({ headers: req.headers });
    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
        saveTo = ".\\Images\\"+alias+"\\"+imagetype+"\\"+filename;
        saveDirectory= ".\\Images\\"+alias+"\\"+imagetype;
        console.log(fieldname);
        console.log(file);
        console.log(filename); //this is the one
        ImageName=filename;
        console.log(encoding);
        console.log(mimetype);
        imagePathFull=saveTo+filename;
        if (fs.existsSync(saveTo)) {
            file.pipe(fs.createWriteStream(saveTo));
        }
        else{
            mkdirp(".\\Images\\"+alias+"\\"+imagetype,function(err){
                 file.pipe(fs.createWriteStream(saveTo));
            });
        }
    });
    busboy.on('finish', function() {
        imageHandle.generateThumbnail(imagePathFull,saveDirectory,ImageName,function(err){
            if(!err){
                res.writeHead(200, { 'Connection': 'close' });
                res.status(200).end();
            }
            else{
                res.writeHead(500, { 'Connection': 'close' });
                res.status(500).end();
            }
        });

    });
    return req.pipe(busboy);
});

最佳答案

我遇到了同样的问题,并按照建议在Windows上安装imagemagik.exe来解决了该问题:imagemagick with nodejs not working

下载:http://www.imagemagick.org/script/binary-releases.php#windows

希望能帮助到你!

关于javascript - 无法使用ImageMagick Node.js调整图像大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26130914/

10-15 14:47