Automattic/node-canvas

Can't load svg with base64 image inside

Ouverte

#1 607 ouverte le 13 juin 2020

 (8 commentaires) (6 réactions) (0 personne assignée)JavaScript (1 195 forks)batch import
BugGood first issueHelp wantedSVG

Métriques du dépôt

Stars
 (10 689 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

Issue or Feature

When load svg ( with base64 image inside ) file using function loadImage I get exception: GdkPixbuf-CRITICAL **: 13:03:49.842: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

Steps to Reproduce

  1. Run following code to load svg file:
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();

Here is svg file:

input.svg.zip

  1. In the terminal run command: node server.js

  2. Get Error: GdkPixbuf-CRITICAL **: 13:03:49.842: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

error_load_svg_with_base64

Your Environment

OS: MacOS Catalina 10.15.5 Node: v10.16.0 NPM: 6.9.2 Canvas: canvas@2.6.1

Expected:

SVG file is loaded & rendered normally.

Guide contributeur