0

I am trying to resize an image using ImageMagick and I've referred this example

and I am getting this error:

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

Below is my Code:

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

}

This is everything I am getting in my console:

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 }

Also, I've tried every possible library on npmjs.org including the most poppular ones like easyimage and node-thumbnail. None of them are working on windows and have issues listed on github.

What am i doing wrong in this.? Please help.!

EDIT:

Just in case you need the code in which I am calling the above method:

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);
});
writeToBhuwan
  • 3,233
  • 11
  • 39
  • 67

1 Answers1

1

I had the same issue and solved it by installing imagemagik.exe on Windows as recommended here: imagemagick with nodejs not working.

Download: Link

Hope it helps!

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Pedro
  • 3,511
  • 2
  • 26
  • 31