2015-10-18 11 views
5

Grafikimi Chart.JS grafik kitaplıkları kullanılarak oluşturulan bir kopyasını kaydetmeye çalışıyorum. .Png görüntüsünü görüntülemek veya kaydetmek için .toBase64Image() işlevini kullanırken boş bir görüntü alıyorum. Bir img etiketinde görüntülemeyi ve görüntüyü PHP ile kaydetmeyi denedim. save64Img, görüntüyü gösterme/kaydetme işlevimdir. Bu özelliği kullanarak herhangi bir şansı oldu mu?Grafik JS'yi kullanarak boş PNG resmi. toBase64Image() işlevi

lineOptions = { 
     scaleShowGridLines : true, 
     scaleGridLineColor : "rgba(0,0,0,.05)", 
     scaleGridLineWidth : 1, 
     bezierCurve : false, 
     pointDot : true, 
     pointDotRadius : 4, 
     pointDotStrokeWidth : 1, 
     pointHitDetectionRadius : 20, 
     datasetStroke : true, 
     datasetStrokeWidth : 1, 
     datasetFill : true, 
     responsive: true,  
     scaleOverride : true, 
     scaleSteps : 5, 
     scaleStepWidth : 20, 
     scaleStartValue : 0 

    } 

    lineChart = { 
      labels : label, 
      datasets : [ 
       { 
        label: "stat1", 
        fillColor : "rgba(128,0,0,0.2)", 
        strokeColor : "rgba(128,0,0,1)", 
        pointColor : "rgba(128,0,0,1)", 
        pointStrokeColor : "#fff", 
        pointHighlightFill : "#fff", 
        pointHighlightStroke : "rgba(128,0,0,1)", 
        data : stat1 
       }, 
       { 
        label: "stat2", 
        fillColor : "rgba(151,187,205,0.2)", 
        strokeColor : "rgba(151,187,205,1)", 
        pointColor : "rgba(151,187,205,1)", 
        pointStrokeColor : "#fff", 
        pointHighlightFill : "#fff", 
        pointHighlightStroke : "rgba(151,187,205,1)", 
        data : stat2 
       } 
      ] 

    }; 

var myChart = new Chart(ctx).Line(lineChart, lineOptions); 

save64Img(myChart.toBase64Image()); 

---------- 

<?php 
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $img)); 

file_put_contents('/tmp/image.png', $data); 

?> 

cevap

0

ek bir geri çağırma üzerinde save64Img(myChart.toBase64Image()) aramak zorunda. Eğer animasyon seçeneği içinde onComplete yöntemi kullanmak zorunda v2 seçenekleri

lineOptions = { 
    onAnimationComplete: function() { 
     save64Img(myChart.toBase64Image()); 
    } 
} 
0

Ben soruyu sordum süre beri oldu bilmek için bu geri arama eklemek, ancak Chart.js içinde olabilir.

animation: { 
    duration: 1500, 
    onComplete: function (animation) { 
     this.toBase64Image(); 
}