运用Webcam完成照相功用

开辟环境:Grails 3.2.3,jQuery 1.11.3

近来做项目,碰到一个一般但又少见的需求——照相,因而在Google上搜刮“js 照相”,涌现的都是Html5的完成,又搜刮“jquery 照相”,搜出了jQuery的照相插件。

先看了下《基于html5完成的超酷摄像头(html5-webcam)照相功用-photobooth-js》,效果发明我的浏览器不支持,连Demo都没运转起来,摒弃。

因而挑选jQuery Webcam插件,参照 jQuery webcam 示例 ,完成了照相功用,然则发明每次翻开浏览器,都邑涌现“是不是许可运用摄像头”的挑选框,好烦,而且js的代码太烦琐。

又托付Google老大,直接搜刮“webcam” ,找到了 webcamjsDemo在我的浏览器中运转一般,js的代码也异常简朴。

以下是依据文档,完成的照相、预览、上传的代码:

 

<script src="webcam.js"></script>
<div id="my_camera"></div>
<img src="" id="img">

<script language="JavaScript">
    //设置镜头的大小
    Webcam.set({
         width: 320,
         height: 240,
         image_format: 'jpeg',
         jpeg_quality: 90
    }); 
    Webcam.attach( '#my_camera' );

    function take_snapshot() {
        Webcam.snap( function(data_uri) {
            $("#img").attr("src", data_uri);
        } );
    }
    function upload() {
        Webcam.upload( $("#img").attr("src"), javaurl, function(code, text) {
                       //文件上传胜利后,要实行的内容                            
        });
    }
</script>

<a href="javascript:void(take_snapshot())">照相</a>
<a href="javascript:void(upload())”>上传</a>

Groovy中保留图片代码以下:

   def image=request.getFile('webcam')
   byte[] b = image .bytes
   String fileName = new Date().format("yyyyMMddHHmmss") + ".jpg"
 
   //保留图片
   OutputStream out = new FileOutputStream(fileName)
   out.write b
   out.flush()
   out.close()

是不是是超等简朴?关键是网页中设置Flash时,挑选“记着”,今后就不必次次设置了。

文中运用的webcam.js,可在https://github.com/jhuckaby/w… 上下载。

    原文作者:DTeam
    原文地址: https://segmentfault.com/a/1190000008271456
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞