Kürzlich habe ich versucht, eine Fotozelle zu erstellen, indem ich auf Webrtc angewiesen bin und fast den gesamten Code abgeschlossen habe, außer dass ich keine Möglichkeit gefunden habe, das Bild nach zu speichern es wurde gefangen genommen.So speichern Sie ein Bild von der Leinwand
Dies ist die nächste, die ich so weit gekommen sind, mein Ziel zu erreichen:
<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>
Der Code im Wesentlichen die Webcam-Stream zu nehmen und es in ein Canvas-Element zugeführt wird. Durch Drücken der Leertaste wird ein Screenshot ausgelöst, der dann als Bild erscheint. Da ich die genaue Quelle der heruntergeladenen Datei nicht angeben kann, öffnet die Schaltfläche das Bild nur auf einer anderen Registerkarte im Browser, anstatt ordnungsgemäß zu funktionieren. Ich würde wirklich etwas Input dafür schätzen, wie ich das lösen kann. Danke im Voraus.
Ich habe es geschafft, bereits mit diesem Stück Code, den Strom von der Leinwand in einem Bild zu tun erfassen:
document.addEventListener ('keydown', function (event) {
if(event.keyCode == 32) {
document.querySelector('#screenshot').src = canvas.toDataURL('image/webp')
}
})
Was ich möchte wissen, ist, wie die Benutzer zu ermöglichen, ihr das Bild speichern auf Computer von dort.
Sie müssen dem Canvas-Element eine ID hinzufügen, damit meine Antwort funktioniert. –
Mögliches Duplikat von [Wie wird Canvas als PNG-Bild gespeichert?] (Http://stackoverflow.com/questions/11112321/how-to-save-canvas-as-png-image) –