在 Express 中使用节点 Canvas API 从输入流读取时出错

Error while reading from input stream using Node Canvas API in Express

我目前正在制作一个程序,在 javascript 中将 2 张图像组合在一起,我通过使用 Node Canvas API 中的 loadImage() 函数加载图像并绘图来实现这一点图像到 canvas.

context

这里是文件canvas.js的javascript代码供参考。

const { createCanvas, loadImage } = require("canvas");
const fs = require("fs");

const canvas = createCanvas(0, 0, "png");
const context = canvas.getContext("2d");

try {
    const picture = loadImage(`../image.png`);
    const frame = loadImage(`../frame.png`);
    Promise.all([picture, frame]).then((response) => {
      response.map((image, index) => {
        if (index === 0) {
          canvas.width = image.width;
          canvas.height = image.height;
          context.drawImage(image, 0, 0);
        } else {
          context.drawImage(image, 0, 0, canvas.width, canvas.height);

          // Outputs the canvas object
          fs.writeFileSync("../framed/out.png", canvas.toBuffer());
        }
      });
    });
  } catch (err) {
    console.log(err);
  }

前几天我能够成功输出一个文件,但是现在当我运行代码时,我在控制台中收到以下错误:

Error: error while reading from input stream
    at setSource (/api/node_modules/canvas/lib/image.js:91:13)
    at Image.set (/api/node_modules/canvas/lib/image.js:62:9)
    at /api/node_modules/canvas/index.js:34:15
    at new Promise (<anonymous>)
    at loadImage (/api/node_modules/canvas/index.js:23:10)
    at frameImage (/api/src/canvas.js:9:21)
    at Object.<anonymous> (/api/src/canvas.js:30:1)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)

除了怀疑我传递给 loadImage() 的论点不正确之外,我不知道该怎么做,但事实可能并非如此。

我明白了,问题是我如何处理我的 post 请求上传图片,然后合并图片的顺序。因为我没有考虑到这一点,writefile() 功能被中断,将损坏的图像文件保存到我的本地存储。