1


使用函数 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


请帮我解决这个问题。

是否有任何从源代码构建节点画布的文档指南,以便我可以使用节点画布构建和调试(一些指南已过时并且有很多编译错误)。

谢谢!

4

0 回答 0