2012-07-17 14 views
11

C'è un modo per prendere un grafico ad alta risoluzione e ottenere una rappresentazione base64 di esso?Highcharts - export to base64

In altre parole, l'equivalente della prima esportazione in PNG o JPG (non mi interessa quale) e quindi ottenere una stringa base64 di quell'immagine.

+2

buona domanda fino voto –

risposta

9

ecco come ho risolto:

  • uso google canvg Ci vuole un URL di un file in formato SVG o il testo di un file in formato SVG, lo analizza in JavaScript, e rende il risultato su un elemento Canvas .

  • rendere il vostro svg grafico sulla tela utilizzando

    canvg(document.getElementById('canvas'),getSVG()); 
    
  • convertire quello che hai in tela per immagine

    var canvas = document.getElementById("canvas") ; 
        var img = canvas.toDataURL("image/png"); //img is data:image/png;base64 
        img = img.replace('data:image/png;base64,', ''); 
    
  • rendere l'immagine a un campo nascosto

    $("hidden field").val(img) ; 
    
  • per convertire questa stringa in byte a RRay fare

    Dim imageFile() As Byte = Convert.FromBase64String(YOUR HIDDEN FIELD .Value) 
    

UPDATE

ottenere il Highcharts SVG

  • utilizzare il metodo

Highcharts API

jsFiddle Example

  • o semplicemente utilizzare $(your svg).html()
+0

Sembra promettente - sapete come ottenere l'SVG per una tabella dei grafici ad alta risoluzione? –

+0

@Adam Rackis vedere gli aggiornamenti –

+0

Infatti, grazie. Tornerò su questo tra un po '- penso che questo potrebbe funzionare. –

3

Per prima cosa, consultare la documentazione highcharts sull'esportazione dei file. Questo ti darà la stringa per l'URL dell'immagine che desideri.

Esportazione: http://www.highcharts.com/ref/#exporting

utilizzare una richiesta HTTP (con AJAX, per esempio) per ottenere il file contenuto binario (jpg/png) e trasferire ad una libreria di codifica Base64 come questo:

Base64: http://www.webtoolkit.info/javascript-base64.html

Buona visione!

+0

E 'il primo passo si-get-il contenuto che binario mi aspetto di essere più difficile. Hai qualche informazione su come si può fare da highcharts? –

+0

Risposta aggiornata. –

+0

Impressionante - grazie per l'aggiornamento –