0

我正在尝试使用gm node调整图像大小并写回文件系统。但是,当我尝试编写调整大小的图像时,会出现以下错误:

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 }

我试图运行的代码是:

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 似乎已安装并使用命令从命令行工作:

$ gm 转换 file.jpg -resize 64x64 file.jpg.conv

以下代码也可以正常工作:

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

所以,我确信 graphicsmagick 工作正常。我只是不明白为什么它会抱怨-size在写入的情况下?

4

0 回答 0