Подтвердить что ты не робот

Highcharts - экспорт в base64

Есть ли способ взять диаграмму с высокими диаграммами и получить его представление base64?

Другими словами, эквивалент первого экспорта его в PNG или JPG (мне все равно), а затем получение строки base64 этого изображения.

4b9b3361

Ответ 1

вот как я его решаю:

  • использовать google canvg Он берет URL-адрес SVG файла или текст SVG файла, анализирует его на JavaScript и отображает результат в элементе Canvas.

  • визуализируйте вашу диаграмму svg на холст, используя

     canvg(document.getElementById('canvas'),getSVG());
    
  • конвертировать то, что у вас есть на холсте, в изображение

      var canvas = document.getElementById("canvas") ; 
      var img = canvas.toDataURL("image/png"); //img is data:image/png;base64
       img = img.replace('data:image/png;base64,', '');
    
  • сделать ваше изображение скрытым полем

      $("hidden field").val(img) ;
    
  • чтобы преобразовать эту строку в массив байтов do

     Dim imageFile() As Byte = Convert.FromBase64String(YOUR HIDDEN FIELD .Value)
    

UPDATE

получить старшие SVG

  • используйте метод chart.getSVG()

API Highcharts

Пример jsFiddle

  • или просто используйте $(your svg).html()

Ответ 2

Во-первых, см. документацию highcharts по экспорту файлов. Это даст вам строку нужного URL изображения.

Экспорт: http://www.highcharts.com/ref/#exporting

Используйте HTTP-запрос (например, с AJAX), чтобы получить двоичный контент файла (jpg/png) и перенести его в библиотеку кодирования base64, такую ​​как:

Base64: http://www.webtoolkit.info/javascript-base64.html

Наслаждайтесь и удачи!