Сканирование QR-кода с помощью веб-камеры, получение изображения с камеры - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть этот код, который сканирует и декодирует изображение qr с помощью этого исходного кода https://github.com/khanamiryan/php-qrcode-detector-decoder, он сканирует файл изображения из ваших документов ... но я хочу сканировать 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>

, поэтому я нажимаю снимок снимка, изображение будет отображаться как изображениеsrc и я хочу, чтобы это изображение было извлечено, если я нажму кнопку сканирования, так что это означает, что мне нужно заменить этот код

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

на имя файла, которое было сгенерировано, когда я щелкаю по этому снимку, который является

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

но дело в том, что я не знаю формат написания кода, это моя идея, но она не работает, хотя

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

заранее спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

Вы ничего не отправляете в форме.

Снимок, сгенерированный в формате base64, поэтому вы можете отправлять его только в виде строки на сервер и декодировать в изображение.

Но гораздо прощеиспользуйте JS QR Decoder как этот https://github.com/colcodev/qrcode-decoder-js

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);
    });
}
...