400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

通过HTML5的getUserMedia实现拍照功能

1. 通过getUserMedia调用设备的摄像头(电脑、手机都可以,取决于浏览器对这个API的支持情况),并将资源放入video标签。
2. 将video内的视频资源通过canvas的drawImage API放入canvas里,这个canvas是不显示的。
3. 将canvas的内容转换成base64编码的webp格式的图像(如果浏览器不支持这个格式,会fallback到png格式)放入img里,于是你就能看到你拍的照片了。

成都创新互联公司是一家专业提供红花岗企业网站建设,专注与成都网站设计、做网站、成都外贸网站建设公司H5开发、小程序制作等业务。10年已为红花岗众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

不废话了,上代码:

HTML




    html5 capture test
    


    
    
    
    snapshot


    

JS

var video = document.querySelector('video');
var canvas = document.querySelector('canvas');
var ctx = canvas.getContext('2d');
var localMediaStream = null;

var snapshot = function () {
    if (localMediaStream) {
        ctx.drawImage(video, 0, 0);
        document.querySelector('img').src = canvas.toDataURL('p_w_picpath/webp');
    }
};

var sizeCanvas = function () {
    setTimeout(function () {
        canvas.width = video.videoWidth;
        canvas.height = video.videoHeight;
        img.width = video.videoWidth;
        img.height = video.videoHeight;
    }, 100);
};

var btnCapture = document.getElementById('capture');
btnCapture.addEventListener('click', snapshot, false);

navigator.webkitGetUserMedia(
    {video: true},
    function (stream) {
        video.src = window.URL.createObjectURL(stream);
        localMediaStream = stream;
        sizeCanvas();
    },
    function () {
        alert('your browser does not support getUserMedia');
    }
);

几个注意事项:

// cross platforms
var myGetUserMedia = navigator.getUserMedia || 
                 navigator.webkitGetUserMedia ||
                 navigator.mozGetUserMedia || 
                 navigator.msGetUserMedia;

http://blog.csdn.net/journey191/article/details/40744015


本文名称:通过HTML5的getUserMedia实现拍照功能
本文地址:http://mbwzsj.com/article/jjcdpe.html

其他资讯

让你的专属顾问为你服务