【发布时间】:2021-10-17 02:58:51
【问题描述】:
我目前正在制作一个在 javascript 中将 2 个图像组合在一起的程序,我通过使用 Node Canvas API 中的 loadImage() 函数加载图像并将图像绘制到 @ 的 context 来做到这一点987654324@.
这里是文件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() 的参数不正确之外,我不确定该怎么做,但情况可能并非如此。
【问题讨论】:
-
您的
image.png或frame.png是否已移至其他位置/已被删除?或者您是从与几天前不同的文件夹运行代码?
标签: javascript node.js image express canvas