如何将画布保存为html5中的图像?

Posted

技术标签:

【中文标题】如何将画布保存为html5中的图像?【英文标题】:How to save canvas as an image in html5? 【发布时间】:2015-01-10 17:33:01 【问题描述】:

如何将画布保存为 html5 中的图像(使用 javascript)?我想创建一个按钮,以便用户可以将 html5 中的画布保存为图像。

【问题讨论】:

Capture HTML Canvas as gif/jpg/png/pdf? 的可能重复项 How To Save Canvas As An Image With canvas.toDataURL()?的可能重复 【参考方案1】:

将画布另存为图像的方法:

添加 HTML:

<div class="canvas__container">
  <canvas id="cnvs" class="canvas__canvas"></canvas>
  <img src="" id="mirror" class="canvas__mirror" />
</div>

添加 CSS:

.canvas__container 
  height: 100%;
  position: relative;
  width: 100%;

.canvas__canvas 
  height: 100%;
  position: relative;
  width: 100%;
  z-index: 1;

.canvas__mirror 
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%; 

添加 JS:

var cnvs = document.getElementById('cnvs'),
    ctx = cnvs.getContext('2d'),
    mirror = document.getElementById('mirror');


cnvs.width = mirror.width = window.innerWidth;
cnvs.height = mirror.height = window.innerHeight;

添加监听事件:

mirror.addEventListener('contextmenu', function (e)  );

将数据画布解析为数据 URL:

mirror.addEventListener('contextmenu', function (e) 
    var dataURL = canvas.toDataURL('image/png');
    mirror.src = dataURL;
);

添加下载按钮:

<script>
var button = document.getElementById('btn-download');
button.addEventListener('click', function (e) 
    var dataURL = canvas.toDataURL('image/png');
    button.href = dataURL;
);
</script>
&lt;a href="#" class="button" id="btn-download"&gt;Download&lt;/a&gt;

我希望,它可能会有所帮助。

【讨论】:

以上是关于如何将画布保存为html5中的图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 HTML5 画布保存为 png [重复]

如何将 HTML5 Canvas 保存为服务器上的图像?

将 HTML5 画布图像保存到数据库

HTML5 画布 - 将保存的图像分享到社交媒体

HTML5 画布在非矩形部分裁剪并保存图像

将 HTML 5 画布保存到 Chrome 中的文件?