使用函数 loadImage 加载 svg(内部带有 base64 图像)文件时出现问题,出现异常:
GdkPixbuf-CRITICAL **: 13:03:49.842: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
这是我的代码和测试 svg 文件:
const fs = require('fs');
const { createCanvas, loadImage } = require('canvas');
async function nodeCanvasTest() {
console.log('starting...');
const canvas = createCanvas(400, 200);
const ctx = canvas.getContext('2d');
image = await loadImage('./input.svg');
ctx.drawImage(image, 0, 0);
var stream = canvas.createPNGStream();
stream.pipe(fs.createWriteStream('output.png'));
console.log('completed');
}
nodeCanvasTest();
svg 文件:
https ://github.com/Automattic/node-canvas/files/4774170/input.svg.zip
当我运行命令时:
node server.js
我收到错误:
我的环境:
- 操作系统:MacOS Catalina 10.15.5
- 节点:v10.16.0
- NPM:6.9.2
- 画布:canvas@2.6.1
请帮我解决这个问题。
是否有任何从源代码构建节点画布的文档指南,以便我可以使用节点画布构建和调试(一些指南已过时并且有很多编译错误)。
谢谢!