Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用网络摄像头、jQuery和HTML存储捕获的图像?_Javascript_Html5 Video - Fatal编程技术网

Javascript 使用网络摄像头、jQuery和HTML存储捕获的图像?

Javascript 使用网络摄像头、jQuery和HTML存储捕获的图像?,javascript,html5-video,Javascript,Html5 Video,我正在做一个使用html和java脚本的项目,但我不熟悉java脚本,但我对js功能知之甚少。我的项目基于网络摄像头和从网络摄像头捕获的图像,我已经完成了到网络摄像头,我从网络摄像头拍摄了照片,现在我的问题是我想使用捕获的按钮Id保存捕获的图像,我尝试了,但我没有如果有人知道,请帮助我 这是我的代码:'cam-video.html' <div class="container" id="videophoto"> <div class="row">

我正在做一个使用html和java脚本的项目,但我不熟悉java脚本,但我对js功能知之甚少。我的项目基于网络摄像头和从网络摄像头捕获的图像,我已经完成了到网络摄像头,我从网络摄像头拍摄了照片,现在我的问题是我想使用捕获的按钮Id保存捕获的图像,我尝试了,但我没有如果有人知道,请帮助我

这是我的代码:'cam-video.html'

     <div class="container" id="videophoto">
        <div class="row">
            <div class="col-sm-6 col-md-6">
            <div id="container">
                <video id="videoel" width="400" height="300" preload="auto" loop playsinline autoplay>
                </video>
                <canvas id="overlay" width="400" height="300"></canvas>
            </div>
<button id="capture" class="pic">Capture</button><br />
                <!--<img src="examples/media/audrey.jpg" />-->
                <div class="alert alert-success" id="success-alert">
    <button type="button" class="close" data-dismiss="alert">x</button>
                    <img src="" id="photo" alt="photo">

捕获
x
这是我的javascript:'mine.js'

    <script>
                var vid = document.getElementById('videoel');
                var vid_width = vid.width;
                var vid_height = vid.height;
                var overlay = document.getElementById('overlay');
                var overlayCC = overlay.getContext('2d');

                /*********** Setup of video/webcam and checking for webGL support *********/

                function enablestart() {
                    var starttbutton = document.getElementById('starttbutton');
                    starttbutton.value = "start";
                    starttbutton.disabled = null;

                }

                var insertAltVideo = function(video) {
                    // insert alternate video if getUserMedia not available
                    if (supports_video()) {
                        if (supports_webm_video()) {
                            video.src = "./media/cap12_edit.webm";
                        } else if (supports_h264_baseline_video()) {
                            video.src = "./media/cap12_edit.mp4";
                        } else {
                            return false;
                        }
                        return true;
                    } else return false;
                }

                function adjustVideoProportions() {
                    // resize overlay and video if proportions of video are not 4:3
                    // keep same height, just change width
                    var proportion = vid.videoWidth/vid.videoHeight;
                    vid_width = Math.round(vid_height * proportion);
                    vid.width = vid_width;
                    overlay.width = vid_width;
                }

                function gumSuccess( stream ) {
                    // add camera stream if getUserMedia succeeded
                    if ("srcObject" in vid) {
                        vid.srcObject = stream;
                    } else {
                        vid.src = (window.URL && window.URL.createObjectURL(stream));
                    }
                    vid.onloadedmetadata = function() {
                        adjustVideoProportions();
                        vid.play();

                    }
                    vid.onresize = function() {
                        adjustVideoProportions();
                        if (trackingStarted) {
                            ctrack.stop();
                            ctrack.reset();
                            ctrack.start(vid);
                        }
                    }
                }

                function gumFail() {
                    // fall back to video if getUserMedia failed
                    insertAltVideo(vid);
                    document.getElementById('gum').className = "hide";
                    document.getElementById('nogum').className = "nohide";
                    alert("There was some problem trying to fetch video from your webcam, using a fallback video instead.");
                }

                navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
                window.URL = window.URL || window.webkitURL || window.msURL || window.mozURL;

                // set up video
                if (navigator.mediaDevices) {
                    navigator.mediaDevices.getUserMedia({video : true}).then(gumSuccess).catch(gumFail);
                } else if (navigator.getUserMedia) {
                    navigator.getUserMedia({video : true}, gumSuccess, gumFail);
                } else {
                    insertAltVideo(vid);
                    document.getElementById('gum').className = "hide";
                    document.getElementById('nogum').className = "nohide";
                    alert("Your browser does not seem to support getUserMedia, using a fallback video instead.");
                }

                vid.addEventListener('canplay', enablestart, false);

                /*********** Code for face tracking *********/

                var ctrack = new clm.tracker();
                ctrack.init();
                var trackingStarted = false;
                function startVideo() {
                    // start video
                    vid.play();
                    // start tracking
                    ctrack.start(vid);
//                  var time=setTimeout("alert('Two Faces Not Allowed')",3500);
                    trackingStarted = true;
                    // start loop to draw face
                    drawLoop();
                }

                function drawLoop() {
                    requestAnimFrame(drawLoop);
                    overlayCC.clearRect(0, 0, vid_width, vid_height);
                    //psrElement.innerHTML = "score :" + ctrack.getScore().toFixed(4);
                    if (ctrack.getCurrentPosition()) {
                        ctrack.draw(overlay);
                        document.getElementById('photo').setAttribute('src', data);
                    }
                }

                /*********** Code for stats **********/

                stats = new Stats();
                stats.domElement.style.position = 'absolute';
                stats.domElement.style.top = '0px';
                document.getElementById('container').appendChild( stats.domElement );

                // update stats on every iteration
                document.addEventListener('clmtrackrIteration', function(event) {
                    stats.update();
                }, false);

            </script>

<script type="text/javascript">
   (function() {

  var streaming = false,
    video = document.querySelector('#video'),
    canvas = document.querySelector('#canvas'),
    buttoncontent = document.querySelector('#buttoncontent'),
    photo = document.querySelector('#photo'),
    startbutton = document.querySelector('#startbutton'),
    width = 320,
    height = 0;

  navigator.getMedia = (navigator.getUserMedia ||
    navigator.webkitGetUserMedia ||
    navigator.mozGetUserMedia ||
    navigator.msGetUserMedia);

  navigator.getMedia({
      video: true,
      audio: false
    },
    function(stream) {
      if (navigator.mozGetUserMedia) {
        video.mozSrcObject = stream;
      } else {
        var vendorURL = window.URL || window.webkitURL;
        video.src = vendorURL.createObjectURL(stream);
      }
      video.play();
    },
    function(err) {
      console.log("An error occured! " + err);
    }
  );


  video.addEventListener('canplay', function(ev) {
    if (!streaming) {
      height = video.videoHeight / (video.videoWidth / width);
      video.setAttribute('width', width);
      video.setAttribute('height', height);
      canvas.setAttribute('width', width);
      canvas.setAttribute('height', height);
      streaming = true;
    }
  }, false);

  function takepicture(data_uri) {

    video.style.display = "none";
    canvas.style.display = "block";
    startbutton.innerText= "RETAKE";
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(videoel, 0, 0, width, height);
    var data = canvas.toDataURL('image/png');
    photo.setAttribute('src', data);
    var data = canvas.toDataURL('image/webp');
    document.getElementById('photo').setAttribute('src', data);
    document.getElementById("two").value = data;
                    document.myForm.sub();
    document.getElementById('capture').innerHTML =
                        '<h2>Here is your image:</h2>' +
                        '<img src="' + data_uri + '"/>';
 document.myForm.sub();

  }
 startbutton.addEventListener('click', function(ev) {

    if(startbutton.innerText==="CAPTURE")
    {

        takepicture();
    }
    else
    {
        video.style.display = "block";
        canvas.style.display = "none";
      startbutton.innerText= "CAPTURE";
    }
    ev.preventDefault();
  }, false);

})();


</script>
 <script>
$(document).ready(function(){
    $("#startbutton").click(function(){
        $("#choosephoto").hide(1000);
    });
});
</script>

var vid=document.getElementById('videoel');
var vid_width=vid.width;
var vid_高度=vid.height;
var overlay=document.getElementById('overlay');
var overlayCC=overlay.getContext('2d');
/***********设置视频/网络摄像头并检查webGL支持*********/
函数enablestart(){
var starttbutton=document.getElementById('starttbutton');
starttbutton.value=“开始”;
starttbutton.disabled=null;
}
var insertAltVideo=函数(视频){
//如果getUserMedia不可用,请插入备用视频
if(支持_video()){
if(支持_webm_video()){
video.src=“./media/cap12_edit.webm”;
}else if(支持\u h264\u基线\u视频(){
video.src=“./media/cap12_edit.mp4”;
}否则{
返回false;
}
返回true;
}否则返回false;
}
函数调整比例(){
//如果视频的比例不是4:3,请调整覆盖和视频的大小
//保持相同的高度,只需改变宽度
变量比例=vid.videoWidth/vid.videoHeight;
视频宽度=数学圆(视频高度*比例);
vid.width=vid_width;
叠加宽度=视频宽度;
}
功能成功(流){
//如果getUserMedia成功,则添加相机流
if(视频中的“srcObject”){
vid.srcObject=流;
}否则{
vid.src=(window.URL&&window.URL.createObjectURL(流));
}
vid.onloadedmetadata=函数(){
调整比例();
视频播放();
}
vid.onresize=函数(){
调整比例();
如果(trackingStarted){
ctrack.stop();
ctrack.reset();
ctrack.start(视频);
}
}
}
函数gumFail(){
//如果getUserMedia失败,请返回视频
插入视频(vid);
document.getElementById('gum').className=“hide”;
document.getElementById('nogum').className=“nohide”;
警报(“尝试从网络摄像头获取视频时出现问题,请改用备用视频。”);
}
navigator.getUserMedia=navigator.getUserMedia | | navigator.webkitGetUserMedia | | navigator.mozGetUserMedia | | navigator.msGetUserMedia;
window.URL=window.URL | | | window.webkitURL | | | window.msURL | | window.mozURL;
//设置视频
if(navigator.mediaDevices){
navigator.mediaDevices.getUserMedia({video:true}).then(gumSuccess).catch(gumFail);
}else if(navigator.getUserMedia){
getUserMedia({video:true},gumSuccess,gumFail);
}否则{
插入视频(vid);
document.getElementById('gum').className=“hide”;
document.getElementById('nogum').className=“nohide”;
警报(“您的浏览器似乎不支持getUserMedia,而是使用回退视频。”);
}
vid.addEventListener('canplay',enablestart,false);
/***********人脸跟踪代码*********/
var ctrack=new clm.tracker();
ctrack.init();
var trackingStarted=假;
函数startVideo(){
//开始视频
视频播放();
//开始跟踪
ctrack.start(视频);
//var time=setTimeout(“警报(‘不允许有两个面’)”,3500);
trackingStarted=true;
//开始循环以绘制面
drawLoop();
}
函数drawLoop(){
请求帧(drawLoop);
覆盖clearRect(0,0,视频宽度,视频高度);
//psrelation.innerHTML=“score:+ctrack.getScore().toFixed(4);
if(ctrack.getCurrentPosition()){
ctrack.draw(叠加);
document.getElementById('photo').setAttribute('src',data);
}
}
/***********统计代码**********/
统计数据=新统计数据();
stats.domElement.style.position='绝对';
stats.domElement.style.top='0px';
document.getElementById('c
  function takepicture(data_uri) {

    video.style.display = "none";
    canvas.style.display = "block";
    startbutton.innerText= "RETAKE";
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(videoel, 0, 0, width, height);
    var data = canvas.toDataURL('image/png');
    photo.setAttribute('src', data);
    var data = canvas.toDataURL('image/webp');
    document.getElementById('photo').setAttribute('src', data);
    document.getElementById("two").value = data;
                    document.myForm.sub();
    document.getElementById('capture').innerHTML =
                        '<h2>Here is your image:</h2>' +
                        '<img src="' + data_uri + '"/>';
 document.myForm.sub();

  }
//$