phantomJS和Google图表getImageURI()

phantomJS和Google图表getImageURI(),phantomjs,Phantomjs,我想得到图片/png;带有phantomJs的Google图表的base64服务器端 $base64 = exec('phantomjs myscript.js'); header("Content-type: image/png"); echo base64_decode( $base64 ); myscript.js: page.onConsoleMessage = function(msg, lineNum, sourceId) { console.log( msg );

我想得到图片/png;带有phantomJs的Google图表的base64服务器端

$base64 = exec('phantomjs myscript.js');
header("Content-type: image/png");
echo base64_decode( $base64 );
myscript.js:

page.onConsoleMessage = function(msg, lineNum, sourceId) {
    console.log( msg );
    phantom.exit();
};
page.open('http://getpngchart.dev/chart.php');
chart.php:

<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 = google.visualization.arrayToDataTable( [['Task', 'Quantity'], ['Critical', 35], ['Routine', 6], ['Adjust', 2]] );
            var options = {colors: ['#E34036','#F7A500','#FF0097'], legend: { position: "none" }};

            var chart = new google.visualization.PieChart( document.getElementById('chart_div') );

            google.visualization.events.addListener(chart, 'ready', function () {
                console.log( chart.getImageURI() );
            });

            chart.draw(data, options);

        }

    </script>
</head>
<body>
    <div id="chart_div" style="width:250px; height:250px;"></div>
</body>
</html>
但是当我使用终端phantomjs myscript.js时,我得到了一个错误的base64,有很多AAAA…:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAewAAAHkCAYAAAD8eRwNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAIABJREFUeAEAwYI+fQH/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

我的目标是使用Chrome和phantomJS获得相同的base64。这个脚本运行良好。但是需要对数据流进行一个小小的调整@line2

$base64 = str_replace(' ','+',$base64);
//Remove identifier string from begining of data.
$base64 =  str_replace('data:image/png;base64,', '', $base64);

我为chart.phpdes添加了代码。这个问题会给您带来任何问题吗?图像被破坏了吗?图像生成可能是通过画布完成的,因为Chrome和PhantomJS 1.x(与Chrome 13相当)有不同的引擎,所以这总是不同的。所以我试了一下,得到了一个很大程度上膨胀的图像。PhantomJS似乎没有压缩图像数据。可能相关的问题:是的,我试图放一个控制台。log'data:image/png;base64,ivborw0kggoaaaansuhueugaaapapaaaad6cayaaaci7fo9aagaeleqvr4x…“使用完整字符串而不是console.log chart.getImageURI,并使用终端获取良好字符串,因此问题来自getImageURI
$base64 = str_replace(' ','+',$base64);
//Remove identifier string from begining of data.
$base64 =  str_replace('data:image/png;base64,', '', $base64);