0

I am trying to resize an image and write back to file system using gm node. However when I try to write resized image it gives following error:

Error: Command failed: gm convert: Option '-size' requires an argument or argument is malformed.
    at ChildProcess.onExit (C:\Users\AndroidStudioProjects\node_modules\gm\lib\command.js:301:17)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at ChildProcess.cp.emit (C:\Users\AndroidStudioProjects\node_modules\gm\node_modules\cross-spawn\lib\enoent.js:40:29)
    at maybeClose (internal/child_process.js:927:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) code: 1, signal: null }

Code I am trying to run is:

gm("C:/Users/Desktop/file.jpg", "file.jpg")
    .resize(500)
    .write("C:/Users/Desktop/sfile.jpg", function(err) {
      if (err) console.log("Resize write error", err);
    });

GraphicsMagick is seemed to be installed and working from command line using command :

$ gm convert file.jpg -resize 64x64 file.jpg.conv

The following code also works fine :

const resize = (filepath: string, output: string, width: number = 256, height: number = 256) => {
  const proc = spawn("gm", ["convert", filepath, "-resize", `${width}x${height}`, output]);

  return new Promise((resolve, reject) => {
    let err = "";
    proc.stderr.on("data", chunk => {
      err += chunk.toString();
    });

    const onEnd = (code: number) => (code ? reject(err) : resolve());

    proc.on("close", onEnd);
    proc.on("end", onEnd);
  });
};

resize("C:/Users/Desktop/file.jpg", "C:/Users/Desktop/sfile.jpg");

So, I know for sure that graphicsmagick is working fine. I just cannot understand why it complains for -size in case of write?

Umer Hayat
  • 1,993
  • 5
  • 31
  • 58

0 Answers0