Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding if condition to Graphic Magic Command

Tags:

I have the following command:

gm('input.jpg')
.crop(500, 500, 10, 10)
.write('output.jpg', function (err) {
  if (err) {
        console.log(err)
  } else {

        console.log('Success')
  }
})

I'd like to add a condition to it without having to write 2 different commands so it would be something like:

var overlay = true
gm('input.jpg')
.crop(500, 500, 10, 10)
if(overlay == true){
 .draw('image Over 0,0 750,750 overlay.jpg')
}
.write('output.jpg', function (err) {
  if (err) {
        console.log(err)
  } else {

        console.log('Success')
  }
})

I'm know the above code won't run, I'm looking for a suggestion for something that would work, without having 2 different GM commands

like image 448
Jason Small Avatar asked Dec 05 '16 22:12

Jason Small


1 Answers

Unless there's something spectacularly magical about how the GM library works here, you can break the gm().crop().write() chain into smaller pieces, à la

var overlay = true;
// ...
var g = gm('input.jpg').crop(500, 500, 10, 10);
if (overlay) {
  g = g.draw('image Over 0,0 750,750 overlay.jpg');
}
g.write('output.jpg', function (err) {
  if (err) throw err;
  console.log('Success');
});
like image 134
AKX Avatar answered Sep 25 '22 16:09

AKX