使用网络摄像头扫描QR码,从wencam提取图像

时间:2019-02-27 04:36:20

标签: javascript php qr-code

我有这段代码可以在源代码forums的帮助下扫描和解码qr图像,它可以从您的文档中扫描图像文件。但是我想使用网络摄像头来扫描qr。

二维码扫描器脚本是这个

  <?php
if ($_SERVER['REQUEST_METHOD'] != "POST"){
    header("location:take-attendance.php");
    die();
}

require "vendor/autoload.php";

$qrcode = new Zxing\QrReader($_FILES['qrimage']['tmp_name']);
$text = $qrcode->text();

var_dump($text);

?>

然后我拍摄快照的网络摄像头就是这样

 <form action="decode.php" method="post" enctype="multipart/form-data">
<script src="webcam.js"></script> <!--source code script from github for webcam config-->

    <div id="my_camera" style="width:320px; height:240px;"></div>
    <div id="my_result"></div>

    <script type=text/javascript>
        Webcam.attach( '#my_camera' );

        function take_snapshot() {
            Webcam.snap( function(data_uri) {
                document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/>';
            } );
        }
    </script>

    <a href="javascript:void(take_snapshot())">Take Snapshot</a>

因此,我单击拍摄快照,该图像将显示为img src,如果我单击“扫描”,则希望获取该图像,这意味着我需要替换此代码

$qrcode = new Zxing\QrReader($_FILES['qrimage']['tmp_name']);

具有当我单击该快照时生成的文件名

<img src="'+data_uri+'"/>

但是问题是我不知道如何编写代码的格式,这是我的主意,但是它不起作用

$qrcode = new Zxing\QrReader($_FILES['data_uri']);

预先感谢

1 个答案:

答案 0 :(得分:0)

您不会发送任何形式的邮件。

快照以base64格式生成,因此您只能将其作为字符串发送到服务器并解码为图像。

但是使用https://github.com/colcodev/qrcode-decoder-js这样的JS QR解码器会更简单

qrcode.decode(data_uri)

然后如果您需要通过简单的输入将结果发送到服务器

Webcam.attach( '#my_camera' );

function take_snapshot() {
    Webcam.snap(function(data_uri) {
        document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/> - '+qrcode.decode(data_uri);
    });
}