Highcharts - 出口到base64

时间:2012-07-17 20:47:04

标签: javascript highcharts

有没有办法获取高图图表,并获得它的base64表示?

换句话说,相当于首先将其导出为PNG或JPG(我不关心哪个),然后获取该图像的base64字符串。

2 个答案:

答案 0 :(得分:9)

这是我如何解决它:

  • 使用google canvg 它需要一个SVG文件的URL或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) ;
    
  • 将此字符串转换为字节数组

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

<强>更新

获取highcharts SVG

  • 使用chart.getSVG()方法

Highcharts API

jsFiddle Example

  • 或只是使用$(your svg).html()

答案 1 :(得分:3)

首先,请参阅有关导出文件的highcharts文档。这将为您提供所需图像URL的字符串。

导出http://www.highcharts.com/ref/#exporting

使用HTTP请求(例如,使用AJAX)获取文件二进制内容(jpg / png)并将其传输到base64编码库,如下所示:

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

享受并祝你好运!