2013-10-08 64 views
0

我'与角绘制的图表:如何highchart转换成二进制图像使用highchart

HTML:

<highchart id="chart" class="plotchartCntr" config="chart"></highchart> 

JS:

$scope.chart = { 
    options: { 
     chart: { 
      type: 'column' 
     } 
    }, 
    xAxis: { 
     categories: [] // dynamically loaded after search 
    }, 
    yAxis: { 
     title: { 
      text: 'Counts' 
     }, 
     labels: { 
      formatter: function() { 
       return this.value 
      } 
     } 
    }, 
    tooltip: { 
     crosshairs: true, 
     shared: true 
    }, 
    series: [] // dynamically loaded after search 
} 

我有这个保存为一个图像。

我的代码(从堆栈溢出了):

var canvas = document.createElement("chart"); 
canvas.width = 200; 
canvas.height = 500; 
var ctx = canvas.getContext("2d"); 
ctx.drawImage(img, 0, 0); 
var dataURL = canvas.toDataURL("image/png"); 
console.log(dataURL); 

但我得到的错误canvas.getContext is not a function

请建议

+0

请把代码上的jsfiddle/plunker –

回答

2

谢谢,我终于得到了答案:

HTML:

<img id="mock" /> 

JS:

var svg = document.getElementById('chart').children[0].innerHTML; 
//svg = chart.getSVG(); 

var base_image = new Image(); 
svg = "data:image/svg+xml," + svg; 
base_image.src = svg; 
$('#mock').attr('src', svg); 

我们也可以将图片标签直接保存在数据库中。参考。 Save highchart to binary image

+1

功能 –

0
var canvas = document.createElement("chart"); 

替换为:

var canvas = document.getElementById("chart"); 
+0

我都尝试,但仍然得到canvas.getContext不上的jsfiddle/plunker – Prashobh

+0

请把代码如果我想它上传图片在Facebook上?看来只需要png格式。 –