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 相关文章推荐
html5 css3 动态气泡按钮实例演示
Dec 02 HTML / CSS
纯css3实现图片翻牌特效
Mar 10 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
Jun 06 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
Mar 12 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
Mar 17 HTML / CSS
HTML5中的Scoped属性使用实例
Apr 23 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
Jul 19 HTML / CSS
HTML5制作表格样式
Nov 15 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
Oct 17 HTML / CSS
详解Canvas实用库Fabric.js使用手册
Jan 07 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常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
js实现动态时钟
2020/03/12 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
Python 可爱的大小写
2008/09/06 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python图像处理入门(一)
2019/04/04 Python
Python字符串的一些操作方法总结
2019/06/10 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
python3 字符串知识点学习笔记
2020/02/08 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
毕业自我评价范文
2013/11/17 职场文书
家长学校教学计划
2015/01/19 职场文书
大学生党员自我评价
2015/03/04 职场文书
委托收款证明
2015/06/23 职场文书
个人催款函范文
2015/06/23 职场文书
五一放假通知怎么写
2015/08/18 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
Python数组变形的几种实现方法
2022/05/30 Python