<!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内容保存为一张图片文件。