广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >如何实现HTML 5在线摄像头应用
  • 779
分享到

如何实现HTML 5在线摄像头应用

2024-04-02 19:04:59 779人浏览 薄情痞子
摘要

如何实现html 5在线摄像头应用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近在搞一个考试系统,系统要求要有随机拍照的功

如何实现html 5在线摄像头应用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

最近在搞一个考试系统,系统要求要有随机拍照的功能,并且摄像头能够收到js的控制。在线摄像头嘛,就那两种实现的方式:cab或者flash。

暂且不论本人从没学过的flash(事实上我已经做了一个flash调用摄像头的demo,虽然是调用成功了,但是对于拍照部分我实在是无力了,况且还有js控制flash部分的代码更是令人头痛。)。

本来之前本人已经开发了一个摄像头的cab,但是activeX嘛,只能给IE用用,兼容性和稳定性都不是很好。于是现在开始研究基于HTML5的在线摄像头。

首先看效果

如何实现HTML 5在线摄像头应用

Html5大家也渐渐的不那么陌生了,至少也得知道只有少数浏览器能很好的兼容HTML5吧。所以测试环境是Chrome 18以上版本,并且在测试前应开启浏览器的MediaStream:在地址栏输入about:flags,启用MediaStream。

如何实现HTML 5在线摄像头应用

然后就可以开始敲代码了。

不过值得注意的是,HTML5的测试不能再本地直接打开html网页,而是需要在Http上访问html页面。直接搭建IIS,apache或者直接通过VS来查看html5页面。

1、  视频流添加一个Video标签,并调用getUserMedia获得用户的摄像头视频流。

<video id="video" autoplay="" width="320px" height="240px"></video>                 <script type="text/javascript">             var video = document.getElementById("video");              navigatornavigator.getUserMedia = navigator.getUserMedia || navigator.WEBkitGetUserMedia;              if (navigator.getUserMedia) {                  if (navigator.webkitURL) {                      navigator.getUserMedia("video", function (stream) {                          video.src = window.webkitURL.createObjectURL(stream);                      }, function (error) { alert(error); });                  }                  else {                      navigator.getUserMedia("video", function (stream) {                          video.src = window.webkitURL.createObjectURL(stream);                      }, function (error) { alert(error); });                  }              }              else {                  alert("navigator.getUserMedia  Error");              }          </script>

这样,运行以后便可以直接在网页中调用摄像头了。运行后会提示

如何实现HTML 5在线摄像头应用

2、  拍照

canvas捕获Video标签的内容并显示,就做到了拍照的效果。

同样先添加一个canvas标签和一个button按钮

<canvas id="canvas1" width="320" height="240"></canvas>

button点击后调用JS,把Video标签中当前的图像显示到canvas中,效果就不做演示了

function scamera() {                  var videoElement = document.getElementById('video');                  var canvasObj = document.getElementById('canvas1');                  var context1 = canvasObj.getContext('2d');                  context1.fillStyle = "#ffffff";                  context1.fillRect(0, 0, 320, 240);                  context1.drawImage(videoElement, 0, 0, 320, 240);                  //alert("PaiZhaoSuccess");              }

3.上传到服务器

上传到服务器还是用的老办法,把图片转为base64,通过ajax,毫无新意的保存到了服务器上。(需要注意的是,HTML5中toDataURL方法是转为的PNG格式,发送到服务端后会很大一张:320*240的照片要190kb,所以需要在服务器端转格式为jpg,变为10kb一张。详情见demo)

function uploadPhoto()//上传拍照的图片              {                  showImGCode();                  request = createRequest();                  if (request == null) {                      alert("Unable to create request");                  }                  else {                      //alert("request.OK");                      var base64Data = document.getElementById('textB64').value.replace(/\+/g, "%2B"); //对参数中的+号编码,防止丢失                      var url = "AJAX/UploadPic.aspx";                      request.open("POST", url, true);                      request.setRequestHeader("Content-type", "application/x-www-fORM-urlencoded");                      request.onreadystatechange = responses;                      request.send("&img=" + base64Data);                      //alert("send.OK");                  }              }              function responses() {                  if (request.readyState == 4)//服务器处理结束                  {                      if (request.status == 200)//一切正常                      {                          if (request.responseText == "OK") {                              alert("上传成功!");                          }                          else {                              alert("上传失败!");                              alert(request.responseText);                          }                      }                  }              }

事实上,通过Html5的其他一些方法,甚至可以做出在线PS的功能,不过这些不在我的需求之内,现在也就不深入研究了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网VUE频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何实现HTML 5在线摄像头应用

本文链接: https://www.lsjlt.com/news/86352.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现HTML 5在线摄像头应用
    如何实现HTML 5在线摄像头应用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近在搞一个考试系统,系统要求要有随机拍照的功...
    99+
    2022-10-19
  • html5如何实现调用摄像头
    小编给大家分享一下html5如何实现调用摄像头,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html是什么html的全称为超文本标记语言,它是一种标记语言,包含了...
    99+
    2023-06-09
  • Python如何实现调用摄像头拍摄照片
    本文小编为大家详细介绍“Python如何实现调用摄像头拍摄照片”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现调用摄像头拍摄照片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。步骤用opencv...
    99+
    2023-07-02
  • 如何使用Python实现控制摄像头
    这篇文章主要介绍“如何使用Python实现控制摄像头”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Python实现控制摄像头”文章能帮助大家解决问题。第一部分:环境搭建在使用 Python ...
    99+
    2023-07-05
  • 如何使用VUE+faceApi.js实现摄像头拍摄人脸识别
    目录需求:实现步骤:第一步:下载引入必要包下载依赖下载model将项目中的model放入VUE中的public文件加下第二步:先把HTML写上去 第三步 可以开始...
    99+
    2023-05-18
    face api.js 人脸识别 vue实现人脸识别 人脸识别 js
  • Android如何实现控制摄像头拍照
    这篇文章主要介绍Android如何实现控制摄像头拍照,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用Camera控制手机拍照的步骤如下: 1) 调用Camera的open()方法打开相机。该方法默认打开后...
    99+
    2023-06-29
  • Vue中如何实现摄像头直播视频
    这篇文章给大家分享的是有关Vue中如何实现摄像头直播视频的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML代码:<div class="mainCl...
    99+
    2022-10-19
  • Qt6如何实现调用摄像头并显示画面
    这篇文章主要讲解了“Qt6如何实现调用摄像头并显示画面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Qt6如何实现调用摄像头并显示画面”吧!1、Cmake环境CmakeLists.txt添加...
    99+
    2023-07-05
  • 利用JavaCV如何实现抓取并保存摄像头的影像
    今天就跟大家聊聊有关利用JavaCV如何实现抓取并保存摄像头的影像,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现:import java.awt.Graphics2D; impo...
    99+
    2023-05-31
    javacv ava
  • Android如何实现调用手机摄像头录像限制录像时长
    小编给大家分享一下Android如何实现调用手机摄像头录像限制录像时长,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下因为服务器空间有限,所以视频时长必须有所限制。在xml中先布局一个按钮,点击开始录频。布局一个...
    99+
    2023-06-29
  • 如何在Linux操作系统上使用摄像头
    本篇内容主要讲解“如何在Linux操作系统上使用摄像头”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Linux操作系统上使用摄像头”吧!  运行 lsusb  找到 Bus 001 Dev...
    99+
    2023-06-10
  • 如何使用HTML5实现超酷摄像头拍照功能
    这篇文章给大家分享的是有关如何使用HTML5实现超酷摄像头拍照功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。WebRTC可能是明年最受关注的HTML5标准了,Mozilla为...
    99+
    2022-10-19
  • win10如何设置禁止应用使用我的摄像头
    这篇文章给大家分享的是有关win10如何设置禁止应用使用我的摄像头的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。点击开始菜单,然后点击红框中的齿轮进入设置。在弹出的设置窗口中点击红框中的“隐私”。点击左侧的相机,...
    99+
    2023-06-14
  • 如何使用 Python为你的在线会议创建一个假的摄像头
    目录创建一个简单的假网络摄像头添加不同的模式优化过渡语音检测如何使用假网络摄像头想象一下。你正在参加在线会议,出于某种原因,你并不想打开摄像头。但是如果你看到其他人都打开了,你觉得你...
    99+
    2022-11-11
  • HTML5如何使用video标签实现选择摄像头功能
    这篇文章主要介绍了HTML5如何使用video标签实现选择摄像头功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。详解HTML5 使用vid...
    99+
    2022-10-19
  • 怎么在Python3中使用OpenCV实现实时摄像头人脸检测
    这篇文章主要介绍怎么在Python3中使用OpenCV实现实时摄像头人脸检测,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!OpenCV 是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面...
    99+
    2023-06-25
  • Html5中如何调用手机摄像头并实现人脸识别
    这篇文章主要介绍了Html5中如何调用手机摄像头并实现人脸识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求混合App开发,原生壳子+webApp,在web部分调用原生摄...
    99+
    2023-06-09
  • opencv+mediapipe如何实现人脸检测及摄像头实时示例
    这篇文章主要为大家展示了“opencv+mediapipe如何实现人脸检测及摄像头实时示例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“opencv+mediapipe如何实现人脸检测及摄像头实...
    99+
    2023-06-22
  • JS如何实现打开摄像头并截图上传功能
    小编给大家分享一下JS如何实现打开摄像头并截图上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JS打开摄像头并截图上传至后端的一个完整步骤1. 打开摄像头主要用到getUserMed...
    99+
    2022-10-19
  • Android应用如何判断用户是否设置了摄像头权限
    这期内容当中小编将会给大家带来有关Android应用如何判断用户是否设置了摄像头权限,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、判断摄像头权限Android API没提供判断摄像头权限是否被关闭的方...
    99+
    2023-05-31
    android roi
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作