HTML5调用手机摄像头拍照的实现思路及代码


Posted in HTML / CSS onJune 15, 2014

小编将思路提供给了大家,学编程最重要的是实践,我这虽然有完善的代码,但是希望大家都可以自己写出属于自己的代码
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编码逗号之后的部分
HTML / CSS 相关文章推荐
详解css3自定义滚动条样式写法
Dec 25 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
May 24 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
Jun 09 HTML / CSS
CSS3模拟IOS滑动开关效果
Sep 28 HTML / CSS
html5调用摄像头功能的实现代码
May 07 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
Feb 26 HTML / CSS
html5 Canvas画图教程(1)—画图的基本常识
Jan 09 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
Sep 06 HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
Nov 18 HTML / CSS
详解HTML5中div和section以及article的区别
Jul 14 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
CSS 伪元素::marker详解
Jun 26 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
Jun 15 #HTML / CSS
HTML5 创建canvas元素示例代码
Jun 04 #HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 #HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 #HTML / CSS
HTML5图片预览实例分享
Jun 04 #HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
Jun 03 #HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
May 31 #HTML / CSS
You might like
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP 中文乱码解决办法总结分析
2009/07/30 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
Python类属性的延迟计算
2016/10/22 Python
Python列表切片用法示例
2017/04/19 Python
Python中with及contextlib的用法详解
2017/06/08 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
给学校的建议书400字
2015/09/14 职场文书
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript