2012-07-17 43 views
11

¿Hay una manera de tomar una gráfica Highcharts, y obtener una representación de la base 64 que?Highcharts - exportación a base 64

En otras palabras, el equivalente de la primera exportación a PNG o JPG (no me importa cuál) y luego conseguir una cadena base64 de esa imagen.

+2

buena pregunta Answer –

Respuesta

9

aquí es cómo lo resuelvo:

  • uso google canvg Se necesita una URL a un archivo SVG o el texto de un archivo SVG, lo analiza en JavaScript, y hace que el resultado en un elemento Canvas .

  • de lograr que su SVG carta a la lona usando

    canvg(document.getElementById('canvas'),getSVG()); 
    
  • convertir lo que tiene en el lienzo de la imagen

    var canvas = document.getElementById("canvas") ; 
        var img = canvas.toDataURL("image/png"); //img is data:image/png;base64 
        img = img.replace('data:image/png;base64,', ''); 
    
  • de lograr que su imagen en un campo oculto

    $("hidden field").val(img) ; 
    
  • para convertir esta cadena a un byte RRay hacer

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

ACTUALIZACIÓN

obtener el Highcharts SVG

  • utilizar el método chart.getSVG()

Highcharts API

jsFiddle Example

  • o simplemente utilizar $(your svg).html()
+0

Parece prometedor: ¿sabe cómo obtener el SVG para una tabla de gráficos altos? –

+0

@ Adam Rackis ver actualizaciones –

+0

De hecho, gracias. Volveré sobre esto un poco, creo que esto podría funcionar. –

3

En primer lugar, ver la documentación highcharts en la exportación de archivos. Esto le dará la cadena a la URL de la imagen que desee.

Exportación: http://www.highcharts.com/ref/#exporting

Use una solicitud HTTP (con AJAX, por ejemplo) para obtener el contenido binario de archivos (jpg/png) y transferirlo a una biblioteca de codificación base64 como éste:

base 64: http://www.webtoolkit.info/javascript-base64.html

disfrutar y buena suerte!

+0

Es el primer paso allí, obtener el contenido binario, que anticipo que más difícil. ¿Tiene alguna información sobre cómo se puede hacer eso desde Highcharts? –

+0

Respuesta actualizada. –

+0

Impresionante: gracias por la actualización –

Cuestiones relacionadas