我正在制作一个应用程序,我需要将Google图表保存为图像。我正在使用的是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>
答案 0 :(得分:12)
答案 1 :(得分: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
答案 2 :(得分:4)
这就是我做的事情
http://danml.com/#/download.html
download(chart.getImageURI(), 'fileName.png', "image/png");
如果3kb脚本太多,请使用http://www.closure-compiler.appspot.com/home
答案 3 :(得分:1)
您最简单的选择是使用Google Chart API
重新生成图表的静态图像版本答案 4 :(得分:1)
使用grChartImg库。这是George Risvas的跨浏览器解决方案。 支持所有浏览器,包括旧版本的IE,并为您提供许多自动程序,如将图表转换为图像,下载,将图表显示到对话框,将其上传到服务器等。
有关详细信息,请查看www.chartstoimage。
我希望能帮助你。
答案 5 :(得分:0)
首先,下载此库:
http://danml.com/download.html
并且刚刚在图表中添加事件监听器
function:
google.charts.setOnLoadCallback(drawVisualization);
function drawVisualization() {
var chart = new google.visualization.ComboChart(document.getElementById('chart_tickets'));
google.visualization.events.addListener(chart, 'ready', function () {
$("#GraphDownloadTickets").click(function() {
download(chart.getImageURI(), 'fileName.png', "image/png")
});
}