努力将使用网络摄像头捕获的 base64 图像转换为 jpeg 以进行上传。
以下捕获/显示照片有效(请注意,我使用的是 webcam.min.js(返回 base64)而不是 webcam.js(返回 jpeg 但依赖于 Flash)-
function take_snapshot() {
Webcam.snap( function(data_uri) {
// display results in page
document.getElementById('upload_results').innerHTML =
'<img id="imageprev" src="'+data_uri+'"/>';
} );
}
我尝试了以下方法,可能会将base 64image 转换为blob,也可能不会-
function saveSnap(){
var base64image = document.getElementById("imageprev").src;
alert(base64image)
// convert base64 to raw binary data held in a string
var byteString = atob(base64image.split(',')[1]);
// separate out the mime component
var mimeString = base64image.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
var dw = new DataView(ab);
for(var i = 0; i < byteString.length; i++) {
dw.setUint8(i, byteString.charCodeAt(i));
alert("arrived here");
// write the ArrayBuffer to a blob, and you're done
return new Blob([ab], {type: mimeString});
}
这没有做任何事情,除了停止 jsp
let image = new Image();
image.src = base64image;
document.body.appendChild(image);
如何获取/查看/提取实际的 jpeg 文件,以便我可以上传它(它必须类似于 number.jpeg)
JDK6 / Javascript(请不要使用php)
任何想法表示赞赏。
问候拉尔夫