是否可以将谷歌图表保存为图像?

Kas*_*hif 13 javascript charts image save

我正在制作一个应用程序,我需要将谷歌图表保存为图像.我正在使用的是tomcat,servlets和javascript.有没有办法将以下生成的图表保存为图像?(参考帖子末尾的代码).想法是用户会看到此图表,然后可以选择将其上传到他的Facebook个人资料中.我不确定这是否可以以原生格式上传到Facebook,或者需要保存为jpg.

<html>    
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = new google.visualization.DataTable();

    data.addColumn('string', 'Year');
    data.addColumn('number', 'Sales');
    data.addRows(4);
    data.setValue(0, 0, ''+2004);
    data.setValue(0, 1, 1000);
    data.setValue(1, 0, '2005');
    data.setValue(1, 1, 1170);
    data.setValue(2, 0, '2006');
    data.setValue(2, 1, 860);
    data.setValue(3, 0, '2007');
    data.setValue(3, 1, 1030.5);

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, {width: 400, height: 240, title: 'Company Performance',hAxis: {title: "X", titleTextStyle: {color: "green"}}});
  }

</script>
  </head>

  <body>
    <div id="chart_div"></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 12

看起来这个功能最近添加了1:

chart.getImageURI()
Run Code Online (Sandbox Code Playgroud)

请参阅文档.

1它似乎已在2014年1月29日发布.


小智 7

Riccardo Govoni的示例解决方案,如谷歌图表的问题页面所示.我们的想法是将SVG转换为Canvas元素.

链接:

教程:http://www.battlehorse.net/page/topics/charts/save_google_charts_as_image.html

示例页面:http://www.battlehorse.net/attach/topics/charts/google_charts_to_image.html

  • 看起来这个[jsfiddle]有一个工作版本(http://jsfiddle.net/SCjm8/1/) (4认同)

RSG*_*RSG 1

最简单的选择是使用Google Chart API重新生成图表的静态图像版本

  • 此 API 已于 2012 年 4 月 20 日弃用。(在此答案发布后)。有一个新的图表 API,但它不支持静态图像。https://developers.google.com/chart/ (6认同)