gpt4 book ai didi

javascript - 如何在js中保存用window.getusermedia拍摄的照片

转载 作者:行者123 更新时间:2023-11-27 23:25:40 25 4
gpt4 key购买 nike

目前我正在开发一个开放的网络应用程序相机,现在我已经实现了相机设置(实时流作为视口(viewport),拍照按钮,捕捉,在 Angular 落显示拍照......等等)但现在我遇到了如何将用户的图片保存到他们的设备或计算机的问题,这个应用程序目前主要是为移动 b2g 设计的。我知道大多数人都会告诉我安全问题!!!我不是说告诉设备确切地把它放在哪里。我的意思是像

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript">
window.onload = function () {
var img = document.getElementById('embedImage');
var button = document.getElementById('saveImage');
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA'+
'AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO'+
'9TXL0Y4OHwAAAABJRU5ErkJggg==';
img.onload = function () {
button.removeAttribute('disabled');
};
button.onclick = function () {
window.location.href = img.src.replace('image/png', 'image/octet-stream');
};
};
</script>
</head>
<body>
<img id="embedImage" alt="Red dot"/>
<input id="saveImage" type="button" value="save image" disabled="disabled"/>
</body>
</html>

在移动设备上执行的特定代码会触发文件在单击按钮时自动保存。现在我想做的是使用它从它的 var 中拍摄我的照片并将其保存为该文件,例如将在下载文件夹中。这就是我目前的代码 https://github.com/1Jamie/1Jamie.github.io

任何帮助将不胜感激,如果您想看看工作情况,这是当前正在运行的实现 http://1Jamie.github.io

最佳答案

当我玩 getUserMedia 时,这对我有用 - 我确实注意到你没有正确大小写的方法名称,它是 navigator.mediaDevices 接口(interface)的方法 - 而不是窗口的方法直接……

引用资料:

[mozilla 导航器] https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/API/Navigator

https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices

[chrome 和 android 的媒体设备] https://developers.google.com/web/updates/2015/10/media-devices?hl=en

var video = document.getElementById('monitor');
var canvas1 = document.getElementById('photo1');

var img1 = document.getElementById('canvasImg');


navigator.mediaDevices.getUserMedia({
video: true
}).then(function (stream) {
video.srcObject = stream;
video.onloadedmetadata = function () {
canvas1.width = video.videoWidth;
canvas1.height = video.videoHeight;

document.getElementById('splash').hidden = true;
document.getElementById('app').hidden = false;
};
}).catch(function (reason) {
document.getElementById('errorMessage').textContent = 'No camera available.';
});

function snapshot1() {
canvas1.getContext('2d').drawImage(video, 0, 0);
}

“save_snap”是按钮的 ID - 免责声明我使用的是 jQuery - 但你应该很容易看到它与你的代码对应的位置:

$("#save_snap").click(function (event){

// save canvas image as data url (png format by default)
var dataURL = canvas2.toDataURL();
// set canvasImg image src to dataURL
// so it can be saved as an image
$('#canvasImg').attr("src" , dataURL);
$('#downloader').attr("download" , "download.png");
$('#downloader').attr("href" , dataURL);

//* trying to force download - jQuery trigger does not apply


//Use CustomEvent Vanilla js: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent
// In particular
var event1 = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});

//NOW we are effectively clicking the element with the href attribute:

//Could use jQuery selector but then we would have to unwrap it
// to expose it to the native js function...
document.getElementById('downloader').dispatchEvent(event1);

});

关于javascript - 如何在js中保存用window.getusermedia拍摄的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38733513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com