【问题标题】:How to convert highchart to binary image如何将highchart转换为二进制图像
【发布时间】:2013-10-08 10:36:14
【问题描述】:

我正在使用 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

请推荐

【问题讨论】:

  • 请把代码放在jsfiddle/plunker上

标签: javascript highcharts


【解决方案1】:

谢谢,终于得到答案了:

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.

【讨论】:

  • 如果我想让它上传图片到facebook怎么办?似乎只需要 png 格式。
【解决方案2】:
 var canvas = document.createElement("chart");

替换为:

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

【讨论】:

  • 我都试过了,但仍然得到 canvas.getContext is not a function
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 2015-08-27
  • 2014-11-12
  • 2012-11-02
  • 2015-06-04
  • 1970-01-01
相关资源
最近更新 更多