如何使用PHP将画布保存为PNG图像?

时间:2014-09-19 13:38:15

标签: javascript php canvas

我正在使用GET将用户的分数传递给make-image.php文件。我希望得分在myCanvas背景图片的顶部传递。如何使用PHP将这2个项目(背景图像)和画布(得分)保存为1个PNG图像?

我正在使用Canvas2Image脚本,但我不知道该怎么做。

请帮忙。我被困了。

这是make-image.php文件:

<?php $score = $_GET['score']; ?>
<html>
    <head>
    <script src="base64.js"></script>
    <script src="canvas2image.js"></script>
    <style type="text/css">

    body { margin: 0; }

    </style>
    </head>
    <body>
        <canvas id="myCanvas" width="300" height="300" style="border:1px solid #d3d3d3;background:url(http://i.imgur.com/PWSOy.jpg);"></canvas>
        <script type="text/javascript">

            var score = <?php echo $score; ?>;
            var canvas = document.getElementById('myCanvas');
            var context = canvas.getContext('2d');
            var x = canvas.width / 2;
            var y = canvas.height / 2;

            context.font = '30pt Calibri';
            context.textAlign = 'center';
            context.fillStyle = 'black';
            context.fillText(score, x, y);

      </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

最近我编写了一些不需要外部库或其他东西的东西 代码行

下面的$_POST['signature']会包含您的base64 encoded图片

define("UPLOAD_DIR", "images/signatures/");
$signature = $_POST['signature'];
$signature = str_replace('data:image/png;base64,', '', $signature);
$signature = str_replace(' ', '+', $signature);
$data = base64_decode($signature);
$file = UPLOAD_DIR . md5(microtime().date('Y-m-d')).'.png';
$success = file_put_contents($file, $data);