zoukankan      html  css  js  c++  java
  • 怎样让HTML5调用手机摄像头拍照——实践就是一切

    原文:怎样让HTML5调用手机摄像头拍照——实践就是一切

    NanShan 小编将思路提供给了大家。学编程最重要的是实践,我这尽管有完好的代码,可是希望大家都能够自己写出属于自己的代码

    HTML5 The Media Capture API提供了对摄像头的可编程訪问,用户能够直接用getUserMedia获得摄像头提供的视频流。但实际上用html5调用手机摄像头存在非常多问题:

    1)谷歌的公布的Chrome到了21版本号后,才新增了一个用于高质量视频音频通讯的getUserMedia API,该API同意Web应用程序訪问摄像头和麦克风,其它手机浏览器仅仅有opera支持html5调用本地拍照功能

    2)两个浏览器均不支持訪问多个摄像头:chrome不支持訪问后置摄像头,pera支持訪问后置摄像头的


    android手机,浏览器chrome32版本号下实现了浏览器调用设备摄像头进行拍照。

    主要分3个步骤来完毕:

    1)获取视频流

    加入一个HTML5的Video标签。并将从摄像头获得视频作为这个标签的输入来源

    var video = document.getElementByIdx_x_x("video");

     navigator.getUserMedia({video:true}, function (stream) {

                            video.src = window.webkitURL.createObjectURL(stream);

                        }, function (error) { alert(error); });

    2)拍照

    关于拍照功能。採用HTML5的Canvas实时捕获Video标签的内容,Video元素能作为Canvas图像的输入

                function scamera() {

                    var videoElement = document.getElementByIdx_x_x('video');

                    var canvasObj = document.getElementByIdx_x_x('canvas1');

                    var context1 = canvasObj.getContext('2d');

                    context1.fillStyle = "#ffffff";

                    context1.fillRect(0, 0, 320, 240);

                    context1.drawImage(videoElement, 0, 0, 320, 240);

                }

    3)图片获取

    要从Canvas获取图片数据,其核心思路是用canvas的toDataURL将Canvas的数据转换为base64位编码的PNG图像

    var imgData=canvas.toDataURL(“image/png”);

    imgData格式例如以下:”data:image/png;base64,xxxxx“

    真正图像数据是base64编码逗号之后的部分

  • 相关阅读:
    scala之伴生对象的继承
    scala之伴生对象说明
    “Failed to install the following Android SDK packages as some licences have not been accepted” 错误
    PATH 环境变量重复问题解决
    Ubuntu 18.04 配置java环境
    JDBC的基本使用2
    DCL的基本语法(授权)
    ZJNU 1374
    ZJNU 2184
    ZJNU 1334
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5222246.html
Copyright © 2011-2022 走看看