• 学习记录1


    人脸识别技术中js调用本地摄像头拍照,上传图片文字字符串的实现:

    function getMedia() {
    $("#mainDiv").empty();
    let videoComp = " <video id='video' width='500px' height='500px' autoplay='autoplay' style='margin-top: 20px'></video><canvas id='canvas' width='500px' height='500px' style='display: none'></canvas>";
    $("#mainDiv").append(videoComp);

    let constraints = {
    video: { 500, height: 500},
    audio: true
    };
    //获得video摄像头区域
    let video = document.getElementById("video");
    //这里介绍新的方法,返回一个 Promise对象
    // 这个Promise对象返回成功后的回调函数带一个 MediaStream 对象作为其参数
    // then()是Promise对象里的方法
    // then()方法是异步执行,当then()前的方法执行完后再执行then()内部的程序
    // 避免数据没有获取到
    let promise = navigator.mediaDevices.getUserMedia(constraints);
    promise.then(function (MediaStream) {
    video.srcObject = MediaStream;
    video.play();
    });

    // var t1 = window.setTimeout(function() {
    // takePhoto();
    // },2000)
    }
    //拍照事件
    function takePhoto() {
    let mainComp = $("#mainDiv");
    if(mainComp.has('video').length)
    {
    let userNameInput = $("#userName").val();
    if(userNameInput == "")
    {
    alert("姓名不能为空!");
    return false;
    }
    //获得Canvas对象
    let video = document.getElementById("video");
    let canvas = document.getElementById("canvas");
    let ctx = canvas.getContext('2d');
    ctx.drawImage(video, 0, 0, 500, 500);
    var formData = new FormData();
    var base64File = canvas.toDataURL();
    var userName = $("#userName").val();
    formData.append("file", base64File);
    formData.append("name", userName);
    formData.append("groupId", "101");
    $.ajax({
    type: "post",
    url: "/faceAdd",
    data: formData,
    contentType: false,
    processData: false,
    async: false,
    success: function (text) {
    var res = JSON.stringify(text)
    if (text.code == 0) {
    alert("注册成功")
    } else {
    alert(text.message)
    }
    },
    error: function (error) {
    alert(JSON.stringify(error))
    }
    });
    }
    else{
    var formData = new FormData();
    let userName = $("#userName").val();
    formData.append("groupId", "101");
    var file = $("#file0")[0].files[0];
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function () {
    var base64 = reader.result;
    formData.append("file", base64);
    formData.append("name",userName);
    $.ajax({
    type: "post",
    url: "/faceAdd",
    data: formData,
    contentType: false,
    processData: false,
    async: false,
    success: function (text) {
    var res = JSON.stringify(text)
    if (text.code == 0) {
    alert("注册成功")
    } else {
    alert(text.message)
    }
    },
    error: function (error) {
    alert(JSON.stringify(error))
    }
    });
    location.reload();
    }
    }

    }

  • 相关阅读:
    Cf的一些总结
    Goodbye 2019
    牛客多校第8场 A题
    19牛客多校第二场 H题
    Hihocoder1673
    记一次根据图片原尺寸设置样式,并进行缩放和拖拽
    鱼骨时间轴案例(转自CSDN,原文链接附于文中)
    jQuery横向上下排列鱼骨图形式信息展示代码时光轴样式(转自CSDN,原文链接附于文中)
    mxGraph实现鱼骨图(因果图)(转自CSDN,链接附于文中)
    erlang win64位包下载链接
  • 原文地址:https://www.cnblogs.com/fengjingfei/p/14916825.html
Copyright © 2020-2023  润新知