头闻号

佛山市顺德区极创防火材料有限公司

其他未分类|耐火、防火材料|其他未分类|室内涂料|特种建材|防水、防潮材料

首页 > 新闻中心 > 科技常识:HTML5 Canvas+JS控制电脑或手机上的摄像头实例
科技常识:HTML5 Canvas+JS控制电脑或手机上的摄像头实例
发布时间:2023-02-01 10:19:22        浏览次数:3        返回列表

今天小编跟大家讲解下有关HTML5 Canvas+JS控制电脑或手机上的摄像头实例 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5 Canvas+JS控制电脑或手机上的摄像头实例 的相关资料,希望小伙伴们看了有所帮助。

移动设备和桌面电脑上的客户端API起初并不是同步的。最初总是移动设备上先拥有某些功能和相应的API 但慢慢的 这些API会出现在桌面电脑上。其中一个应用接口技术就是getUserMedia API 它能让应用开发者访问用户的摄像头或内置相机。下面就让我展示一下如何通过浏览器来访问你的摄像头 并提取截屏图形。

HTML代码

下面的代码里我写了一部分注释 请阅读:复制代码代码如下: <!-- 理想情况下我们应该先判断你的设备上是否 有摄像头或相机 但简单起见 我们在这里直接 写出了HTML标记 而不是用Javascript先判断 然后动态生成这些标记 --> <video id="video"width="640"height="480"autoplay></video> <button id="snap">Snap Photo</button> <canvas id="canvas"width="640"height="480"></canvas> 在写出上面这些标记前应该判断用户的客户端是否有摄像头支持 但这里为了不那么麻烦 这里直接写出了这些HTML标记 需要注意的是我们这里使用的长宽是640×480。

Javascript代码

因为我们是手工写出的HTML 所以下面的js代码会比你想象的要简单了很多。复制代码代码如下: // Put event listeners into place window.addEventListener("DOMContentLoaded", function() { // Grab elements, create settings, etc. var canvas = document.getElementById("canvas"), context = canvas.getContext("2d"), video = document.getElementById("video"), videoObj = {"video": true }, errBack = function(error) { console.log("Video capture error:", error.code); }; // Put video listeners into place if(navigator.getUserMedia) { // Standard navigator.getUserMedia(videoObj, function(stream) { video.src = stream; video.play(); }, errBack); } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed navigator.webkitGetUserMedia(videoObj, function(stream){ video.src = window.webkitURL.createObjectURL(stream); video.play(); }, errBack); } else if(navigator.mozGetUserMedia) { // Firefox-prefixed navigator.mozGetUserMedia(videoObj, function(stream){ video.src = window.URL.createObjectURL(stream); video.play(); }, errBack); } }, false); 一旦判断出用户浏览器支持getUserMedia 下面就非常简单了 只需要将那个video元素的src设置为用户的摄像头视频直播连接。这就是用浏览器访问摄像头需要做的所有的事情!

拍照的功能只能说是稍微复杂一点点。我们在按钮上加入一个监听器 将视频画面画到画布上。复制代码代码如下: // 触发拍照动作 document.getElementById("snap") .addEventListener("click", function() { context.drawImage(video, 0, 0, 640, 480); }); 当然 你还可以在图片上加一些滤镜效果….

以前我们需要使用第三方的插件才能从浏览器里访问用户的摄像头 这不免有些复杂。现在只需要HTML5的画布技术和javascript 我们就能简单快速的操作用户的摄像头。不仅仅还是访问摄像头 而且是因为HTML5的画布技术及其强大 我们可以给图片上加入各种迷人的滤镜效果。现在 在浏览器里用自己的摄像头给自己拍张照片吧!

来源:爱蒂网