[转]使用jquery-webcam插件,实现人脸采集并转base64
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[转]使用jquery-webcam插件,实现人脸采集并转base64,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2991字,纯文字阅读大概需要5分钟。
内容图文
![[转]使用jquery-webcam插件,实现人脸采集并转base64](/upload/InfoBanner/zyjiaocheng/1199/5fa764cab4934041992ab955a19b2584.jpg)
项目需求:在ie或chrome浏览器下,调用电脑摄像头(确保使用的是笔记本电脑,或者摄像头功能正常使用的台式机),进行人脸图像采集预览,并将图片的base64码传入到后台进行后续操作。该demo适用于chrome和ie10以上,ie10以下版本的未测试。
前期插件准备
测试页面
测试前注意事项:
- 测试html文件必须使用http请求方式打开,不可以通过本地file://请求直接打开,会报错:webcam.capture is not a function
- 在进行chrome和ie同时调试,或者打开多个页面调试的时候,务必关闭前一页面,解除前页面对摄像头的占用,否则后一页面调用摄像头后会显示黑屏或白屏
-
因为console.log打印的日志长度是有限制的,所以直接通过console.log打印的base64码是不完整的,因此将该base64码复制到浏览器地址栏打开进行图像预览的时会无法显示图片。
解决办法:我们可以将完整的base64码直接设置给预览img的src,然后通过开发者工具F12取得的base64码便是完整的
`base64image.setAttribute(‘src‘, base64);`
html代码:
以下代码是基于原作者的demo页进行的部分修改,并使用了两种预览模式(canvas和img),根据需求选择使用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>webcam</title> <style type="text/css"> #webcam { width: auto; height: auto; float: left; } #base64image { display: block; width: 320px; height: 240px; } </style> <!-- 基本的jquery引用,1.5版本以上 --> <script src="jquery-1.8.3.min.js"></script> <!-- webcam插件引用 --> <script src="jquery.webcam.js"></script> </head> <body> <div id="webcam"></div> <canvas id="canvas" width="320" height="240"></canvas> <input id="snapBtn" type="button" value="拍照" /> <img id="base64image" src=‘‘ /> <script type="text/javascript"> var pos = 0, ctx = null, image = []; var w = 320; var h = 240; $(document).ready(function() { jQuery("#webcam").webcam({ width: 320, height: 240, mode: "callback", swffile: "jscam_canvas_only.swf", // 这里引入swf文件,注意路径 onTick: function(remain) {}, onSave: function(data) { var col = data.split(";"); var img = image; for(var i = 0; i < 320; i++) { var tmp = parseInt(col[i]); img.data[pos + 0] = (tmp >> 16) & 0xff; img.data[pos + 1] = (tmp >> 8) & 0xff; img.data[pos + 2] = tmp & 0xff; img.data[pos + 3] = 0xff; pos += 4; } if(pos >= 4 * 320 * 240) { // 将图片显示到canvas中 ctx.putImageData(img, 0, 0); // 取得图片的base64码var base64 = canvas.toDataURL("image/png"); // 将图片base64码设置给imgvar base64image = document.getElementById(‘base64image‘); base64image.setAttribute(‘src‘, base64); pos = 0; } }, onCapture: function() { webcam.save(); // Show a flash for example }, debug: function(type, string) { console.log(‘type:‘ + type + ‘,string:‘ + string); // Write debug information to console.log() or a div }, onLoad: function() { // Page load } }); window.addEventListener("load", function() { var canvas = document.getElementById("canvas"); if(canvas.getContext) { ctx = canvas.getContext("2d"); ctx.clearRect(0, 0, 320, 240); var img = new Image(); img.onload = function() { ctx.drawImage(img, 129, 89); } image = ctx.getImageData(0, 0, 320, 240); } }, false); $(‘#snapBtn‘).on(‘click‘, function() { webcam.capture(); }); }); </script> </body> </html>
原文:https://www.cnblogs.com/Violety/p/10320284.html
内容总结
以上是互联网集市为您收集整理的[转]使用jquery-webcam插件,实现人脸采集并转base64全部内容,希望文章能够帮你解决[转]使用jquery-webcam插件,实现人脸采集并转base64所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。