SVG в PNG в JavaScript - PullRequest
       12

SVG в PNG в JavaScript

0 голосов
/ 25 октября 2019

У меня проблема с конвертацией SVG в PNG (base64). SVG к base64 работает нормально, потому что он просто отлично отображается в браузере. Но когда я пытаюсь загрузить изображение, оно не загружается. У кого-нибудь может быть идея, почему?

  var xml = new XMLSerializer().serializeToString(svg);
  var svg64 = btoa(xml);
  var b64start = 'data:image/svg+xml;base64,';
  var image64 = b64start + svg64;
  console.log(image64);

  const img = new Image();

  img.onload = function() {
    const canvas = document.createElement('canvas');
    canvas.width = img.width;
    canvas.height = img.height;
    const ctx = canvas.getContext('2d');
    ctx.drawImage(img, 0, 0);
    const dataBase64 = canvas.toDataURL('image/png');
    console.log(dataBase64);

    generatePowerpoint(response, dataBase64);
  }
  img.onerror = function() {
    console.log(this.src);

  }
  img.src = image64;

1 Ответ

0 голосов
/ 05 ноября 2019

Это зависит от браузера, который вы используете. При использовании Firefox тег svg должен иметь атрибуты ширины и высоты (не в%).

Это также зависит от содержимого svg. Если svg содержит нелатинские символы, btoa может завершиться с ошибкой (даже если это не является проблемой, поскольку в вашем случае Svg to base64 работает нормально).

...