最近,我一直在试图依靠Webrtc创建一个照片展台,并且几乎完成了所有的代码,除了我一直无法找到保存图像的方法之后它已被捕获。如何保存画布上的图像
这是迄今为止对实现我的目标,我来最接近:
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>fotogoof</title>
<link rel="Stylesheet" href="css/bootstrap.css"/>
<link rel="Stylesheet" href="css/style.css"/>
<script type="text/javascript">
window.onload = function() {
var img = document.getElementById('screenshot');
var button = document.getElementById('saveImage');
img.src = '';
img.onload = function() {
button.removeAttribute('disabled');
};
button.onclick = function() {
window.location.href = img.src.replace('image/png', 'image/octet-stream');
};
};
</script>
</head>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<h2 class="brand">Html5 Photobooth</h1>
</div>
</div>
</div>
<div class="container" id="body-wrap">
<div class="container" id="main">
<div class="span10">
<div id="video-container">
<canvas width="400" height="320" class="mask"></canvas>
<div id="counter">
</div>
</div>
<br><div id="pic-holder" class="pull-left"><img id="screenshot"></div></br>
<input id="saveImage" type="button" value="save image" disabled="disabled"/>
</div>
</div>
</div>
</div>
的代码基本上走的是摄像头流,并将其送入一个canvas元素。按下空格按钮会触发一个屏幕截图,然后显示为图像。由于我无法提供正在下载的文件的确切来源,因此按钮仅在浏览器的另一个选项卡中打开图像,而不是正常运行。我真的很感谢一些关于如何解决这个问题的建议。提前致谢。
我已经成功地做到捕捉从画布流与这段代码的图像:
document.addEventListener ('keydown', function (event) {
if(event.keyCode == 32) {
document.querySelector('#screenshot').src = canvas.toDataURL('image/webp')
}
})
我想知道的是如何使用户能够将图像保存到自己的电脑从那里。
您需要为canvas元素添加一个ID以供我的答案工作。 –
可能的重复[如何将画布保存为PNG图像?](http://stackoverflow.com/questions/11112321/how-to-save-canvas-as-png-image) –