web/html5调用摄像头实现二维码扫描效果(代码实例)

本文给大家介绍如何用web/html5调用摄像头实现二维码扫描的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

利用html5(navigator.getUserMedia)调用摄像头抓拍图片媒体流,通过php调用java接口解析图片二维码,实现二维码解析,可结合自己的业务!不过目前支持的浏览器不多是个问题。

需要面试题点击下面链接查看,有很多:

web前端全栈资料粉丝福利(面试题、视频、资料笔记、进阶路线)

html/js

    HTML5 code Reader

    

  


      

      


 

   




php(saveimg)

include_once("utils.php");

$base64_image_content=$_POST['img'];

if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result))

{

  $type= $result[2];

  $new_file= "./2.{$type}";

  if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){

    $code=utils::deCodeBitMap("2.png","192.168.46.123",20147);

    echo'{"status":"success","data":"'.trim($code).'"}';

  }else{

    echo'{"status":"write error","data":"NO"}';

  }

}else{

    echo'{"status":"preg error","data":"NO"}';

}

?>

php(utils)


classutils{


   /**

       * @access static

       * @param  $imagepath String 图片的完整路径

   * @param  $host      String 主机如:127.0.0.1

   * @param  $port      String 端口号如:20147

       * @return string 解析出的URL

       */

   staticfunctiondeCodeBitMap($imagepath,$host,$port){

       $socket= socket_create(AF_INET, SOCK_STREAM, SOL_TCP) ordie($imagepath." Could not connet server create\n"); // 创建一个Socket

       if(!$socket){

           return"";

       }

       $connection= socket_connect($socket, $host, $port) ordie($imagepath." Could not connet server connection\n");    //  连接

       if(!$connection){

           return"";

       }

       socket_write($socket, $imagepath) ordie("Write failed\n"); // 数据传送 向服务器发送消息


       $buff= socket_read($socket, 1024, PHP_NORMAL_READ);

       return$buff;

   }


}

java扩展使用说明

该解析过程需要java环境支持,jar包启动后在本机的20147端口接受socket监听,因此网络编程语言都可以调用。

1 命令行启动jar包

java -jar xxxxx.jar

启动成功应该能看到20147端口的应用

2服务socket调用

暂提供php调用代码

最终效果:



浏览器支持情况


总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关内容请关注我!!

你可能感兴趣的:(web/html5调用摄像头实现二维码扫描效果(代码实例))