Search code examples
javascriptnode.jsgraphicsmagick

gm for node.js: resize only if image is bigger then target size


I do a resize to make huge images fit to the website, that means big files are shrinked to 1000px.

gm(readStream, fileObj.name()).resize('1000').stream().pipe(writeStream);

But how can I avoid that tiny images get bigger?


Solution

  • Use gm's size method:

    var image = gm(readStream, fileObj.name());
    image.size(function(err, size){
      if(size.width >= 1000 && size.height >= 1000) {
        image.resize('1000').stream().pipe(writeStream);
      }
    })