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中文字镂空、透明值、阴影效果设置示例小结
Mar 07 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
May 03 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
May 10 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
移动端html5 meta标签的神奇功效
Jan 06 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
Jan 11 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
Jan 27 HTML / CSS
浅谈HTML5 Web Worker的使用
Jan 05 HTML / CSS
详解h5页面在不同ios设备上的问题总结
Mar 01 HTML / CSS
Html5页面获取微信公众号的openid的方法
May 12 HTML / CSS
解析CSS 提取图片主题色功能(小技巧)
May 12 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python实现登录接口的示例代码
2017/07/21 Python
基于python中theano库的线性回归
2018/08/31 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
python自定义函数def的应用详解
2020/06/03 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
成品仓管员工作职责
2013/12/29 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
小学生运动会报道稿
2014/09/12 职场文书
南极大冒险观后感
2015/06/05 职场文书
喋血孤城观后感
2015/06/08 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技
Python简易开发之制作计算器
2022/04/28 Python
SpringBoot详解执行过程
2022/07/15 Java/Android