2011-03-28 13 views
13

मैं एक ऐसा एप्लिकेशन बना रहा हूं जिसमें मुझे Google चार्ट को छवि के रूप में सहेजने की आवश्यकता होगी। मैं जो भी उपयोग कर रहा हूं वह टॉमकैट, सर्वलेट्स और जावास्क्रिप्ट है। क्या निम्न जेनरेट किए गए चार्ट को छवि के रूप में सहेजने का कोई तरीका है? (पोस्ट के अंत में कोड देखें)। विचार यह है कि उपयोगकर्ता इस चार्ट को देखेगा और उसके बाद उसे अपने फेसबुक प्रोफाइल में अपलोड करने का विकल्प होगा। मुझे यकीन नहीं है कि यह फेसबुक के मूल प्रारूप में अपलोड करने योग्य होगा या उसे jpg के रूप में सहेजने की आवश्यकता होगी।क्या एक Google चार्ट को छवि के रूप में सहेजना संभव है?

<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

फेसबुक के साथ एकीकृत आप आवेदन कर रहा है और एपीआई के माध्यम से फेसबुक खाते में तस्वीरें अपलोड कर सकते अंदर एक घटनाओं श्रोता जोड़ने के लिए के बाद? यदि नहीं, तो उपयोगकर्ता को ऐसा करने के लिए फेसबुक अपलोड का उपयोग करना होगा। इस मामले में उन्हें चार्ट छवि पर राइट क्लिक करना होगा, के रूप में सहेजें, और फिर फेसबुक पर अपलोड करें। –

+0

यदि आप लोड होने के दौरान फिडलर चलाते हैं, तो आप देखेंगे कि यह सिर्फ Google से एक छवि लोड करता है। अपने सर्वर को उसी छवि के लिए http अनुरोध करने के बाद url आपके सर्वर को सीधे Google से छवि डाउनलोड करने की अनुमति देगा और जो भी इसे पसंद करता है उसे करें। –

+0

किसी भी व्यक्ति के लिए अभी भी उत्तर की तलाश है, देखें: https://gist.github.com/1333906 – undsoft

उत्तर

1

आपका सबसे आसान विकल्प के रूप में गूगल चार्ट के मुद्दों पेज पर देखा रिकार्डो Govoni से Google Chart API

+6

यह एपीआई 20 अप्रैल, 2012 को बहिष्कृत कर दिया गया था। (इस उत्तर के बाद पोस्ट किया गया था)। एक नया चार्टिंग एपीआई है लेकिन यह स्थिर छवियों का समर्थन नहीं करता है। https://developers.google.com/chart/ – dana

7

उदाहरण समाधान का उपयोग कर चार्ट की एक स्थिर छवि संस्करण पुनर्जीवित करने के लिए है। विचार एसवीजी को कैनवास तत्व में परिवर्तित करना है।

लिंक:

ट्यूटोरियल: 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

+6

अब और काम नहीं करता है। :( –

+4

ऐसा लगता है कि इस [jsfiddle] में एक वर्किंग वर्जन है (http://jsfiddle.net/SCjm8/1/) – mgilson

+0

फ़ाइल नाम और एक्सटेंशन को सेट करने का तरीका यहां दिया गया है: http://stackoverflow.com/questions/7717851/save-file-javascript-with-file-name – Owen

1

उपयोग grChartImg पुस्तकालय। यह जॉर्ज रिसास से एक क्रॉस ब्राउज़र समाधान है। आईई के पुराने संस्करणों सहित सभी ब्राउज़रों का समर्थन करता है और आपको एक चार्ट को छवि में डाउनलोड करने, डाउनलोड करने, एक चार्ट में एक चार्ट दिखाने, डाउनलोड करने के लिए एक सर्वर आदि को अपलोड करने के लिए कई ऑटो प्रक्रियाएं प्रदान करता है।

अधिक जानकारी के लिए www.chartstoimage देखें ।

मुझे आशा है कि आपकी मदद करें।

12

ऐसा लगता है कि इस सुविधा की तरह हाल ही में था रूप में जोड़ा गया:

chart.getImageURI() 

documentation देखें।

ऐसा लगता है कि यह 2 9 जनवरी 2014 रिलीज में जोड़ा गया है।

+0

क्या यह अब गायब हो गया है? – Jglstewart

+0

@Jglstewart - मुझे निश्चित रूप से उम्मीद नहीं है ...: - – mgilson

+0

यह नहीं है। मेरा चार्ट चार्ट चार्ट था जो एक कारण था अपरिभाषित फ़ंक्शन त्रुटि। समस्या को हल करने के लिए, मैंने चार्ट.getChart.getImageURI(); – Jglstewart

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") 

    }); 
} 
संबंधित मुद्दे