canvas转图片

136 阅读1分钟
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Canvas to Image</title>
</head>
<body>
    <canvas id="myCanvas" width="500" height="500" style="border:1px solid #ccc;"></canvas>
    <button id="convertButton">Convert to Image</button>

    <script>
        // 获取canvas元素和上下文
        var canvas = document.getElementById('myCanvas');
        var context = canvas.getContext('2d');

        // 在Canvas上绘制一些内容(示例为一个红色矩形)
        context.fillStyle = 'red';
        context.fillRect(50, 50, 200, 100);

        // 获取转换按钮元素
        var convertButton = document.getElementById('convertButton');

        // 添加按钮点击事件处理程序
        convertButton.addEventListener('click', function() {
            // 将Canvas内容转为DataURL
            var imageDataURL = canvas.toDataURL('image/png');

            // 创建一个新的a标签
            var downloadLink = document.createElement('a');

            // 设置a标签的href属性为DataURL
            downloadLink.href = imageDataURL;

            // 设置下载的文件名(可以根据需要自定义)
            downloadLink.download = 'canvas_image.png';

            // 将a标签添加到文档中
            document.body.appendChild(downloadLink);

            // 模拟点击a标签进行下载
            downloadLink.click();

            // 移除添加的a标签
            document.body.removeChild(downloadLink);
        });
    </script>
</body>
</html>

在上述示例中,Canvas上绘制了一个红色矩形。当用户点击"Convert to Image"按钮时,通过toDataURL方法将Canvas内容转为DataURL,然后创建一个<a>标签,设置其href属性为DataURL,以及download属性为下载的文件名。最后,通过模拟点击<a>标签,触发下载操作。这样用户就可以将Canvas内容保存为一张图片文件。