文章目录
0. 需求
在前端调用摄像头进行用户拍照,将照片传至后端,后端调用百度人脸对比api进行人相对比,如果相似度达到90%以上则进行登录。
1. 前端实现
1.1 如何调用摄像头
js代码如下:
// 启动摄像头
function activateCamera() {
document.getElementById("vedioWindow").hidden=false;
document.getElementById("canvasWindow").hidden=false;
//video捕获摄像头画面
navigator.mediaDevices.getUserMedia({
video: true,
}).then(success).catch(error)
function success(stream) {
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}
function error(err) {
alert('video error: ' + err)
}
}
function shoot() {
//把当前视频帧内容渲染到画布上
context.drawImage(self.video, 0, 0, 200, 200);
}
function myUpload() {
//生成图片格式base64包括:jpg、png格式
var Data = canvas.toDataURL("image/jpeg", 1.0);
var imageDataB64 = Data.substring(22);
//这里我打算用ajax方式,所以需要使用Formdata形式
var data = new FormData();
data.append("imgData", imageDataB64);
$.ajax({
url:"/admin/faceLogin",
type: "post",
data: data,
//async: true,
contentType: false,
processData:false, // 告诉浏览器不要处理我的数据 直接发就行
success: function