2012-07-17 25 views
11

Có cách nào để lấy biểu đồ highcharts và nhận được biểu diễn cơ sở của nó không?Highcharts - xuất ra base64

Nói cách khác, tương đương với việc xuất lần đầu tiên sang PNG hoặc JPG (Tôi không quan tâm) và sau đó nhận chuỗi base64 của hình ảnh đó.

+2

câu hỏi hay Answer –

Trả lời

9

ở đây là làm thế nào tôi giải quyết nó:

  • sử dụng google canvg Phải mất một URL vào một tập tin SVG hoặc nội dung của một tập tin SVG, phân tích nó trong JavaScript, và làm cho kết quả trên một yếu tố Canvas .

  • làm svg biểu đồ của bạn vào khung sử dụng

    canvg(document.getElementById('canvas'),getSVG()); 
    
  • chuyển đổi những gì bạn có trong vải để hình ảnh

    var canvas = document.getElementById("canvas") ; 
        var img = canvas.toDataURL("image/png"); //img is data:image/png;base64 
        img = img.replace('data:image/png;base64,', ''); 
    
  • làm cho hình ảnh của bạn vào một lĩnh vực ẩn

    $("hidden field").val(img) ; 
    
  • để chuyển đổi chuỗi này thành byte a rray làm

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

CẬP NHẬT

được highcharts SVG

  • sử dụng phương pháp chart.getSVG()

Highcharts API

jsFiddle Example

  • hoặc đơn giản là sử dụng $(your svg).html()
+0

Điều đó có vẻ đầy hứa hẹn - bạn có biết làm cách nào để tải SVG cho biểu đồ highcharts không? –

+0

@Adam Rackis xem cập nhật –

+0

Thực tế - cảm ơn bạn. Tôi sẽ quay lại sau một chút - tôi nghĩ điều này có thể hoạt động. –

3

Trước tiên, hãy xem tài liệu highcharts về xuất tệp. Điều này sẽ cung cấp cho bạn chuỗi URL hình ảnh mà bạn muốn.

Xuất: http://www.highcharts.com/ref/#exporting

Sử dụng một yêu cầu HTTP (với AJAX, ví dụ) để tải tệp nội dung nhị phân (jpg/png) và chuyển nó vào một thư viện mã hóa base64 như thế này một:

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

Chúc bạn may mắn!

+0

Đó là bước đầu tiên có-get các nội dung mà nhị phân Tôi dự đoán là khó khăn nhất. Bạn có bất kỳ thông tin về cách có thể được thực hiện từ highcharts? –

+0

Đã cập nhật câu trả lời. –

+0

Tuyệt vời - cảm ơn bạn đã cập nhật –