javascript - 如何使用 iPad 摄像头读取网站上的二维码?

标签 javascript jquery jakarta-ee qr-code zxing

我正在使用以下代码访问相机,但目的是使用相机读取 QR 码。 使用以下代码,我只能拍照并保存,然后使用我的后端从保存的文件中读取 QR 码。

如何修改代码在摄像头读取时处理图片。 或者将流发送到后端,一旦检测到 QR 码,它就会通知用户。

我需要使用平板电脑工作。

我也可以使用下面的来录制视频,但是如何将流发送到后端

 <input type="file" capture="camera" accept="video/*">

我的拍照代码

<!DOCTYPE HTML>
<html>
    <head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>ColorThief Demo</title>

    <script type="text/javascript" charset="utf-8" src="jquery-2.0.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="quantize.js"></script>
    <script type="text/javascript" charset="utf-8" src="color-thief.js"></script>

    <style>
    #yourimage {
        width:100%; 
    }

    #swatches {
        width: 100%;
        height: 50px;   
    }

    .swatch {
        width:18%;
        height: 50px;
        border-style:solid;
        border-width:thin;  
        float: left;
        margin-right: 3px;  
    }
    </style>
    </head>

    <body>

        <input type="file" capture="camera" accept="image/*" id="takePictureField">
        <img id="yourimage">

        <div id="swatches">
            <div id="swatch0" class="swatch"></div>
            <div id="swatch1" class="swatch"></div>
            <div id="swatch2" class="swatch"></div>
            <div id="swatch3" class="swatch"></div>
            <div id="swatch4" class="swatch"></div>
        </div>

    <script>
    var desiredWidth;

    $(document).ready(function() {
        console.log('onReady');
        $("#takePictureField").on("change",gotPic);
        $("#yourimage").load(getSwatches);
        desiredWidth = window.innerWidth;

        if(!("url" in window) && ("webkitURL" in window)) {
            window.URL = window.webkitURL;   
        }

    });

    function getSwatches(){
        var colorArr = createPalette($("#yourimage"), 5);
        for (var i = 0; i < Math.min(5, colorArr.length); i++) {
            $("#swatch"+i).css("background-color","rgb("+colorArr[i][0]+","+colorArr[i][1]+","+colorArr[i][2]+")");
            console.log($("#swatch"+i).css("background-color"));
        }
    }   

    //Credit: https://www.youtube.com/watch?v=EPYnGFEcis4&feature=youtube_gdata_player
    function gotPic(event) {
        if(event.target.files.length == 1 && 
           event.target.files[0].type.indexOf("image/") == 0) {
            $("#yourimage").attr("src",URL.createObjectURL(event.target.files[0]));
        }
    }



    </script>    
    </body>

</html>

最佳答案

在移动设备上捕获视频并将其发送到服务器会占用大量带宽。我会给 jsqrcode尝试在 JavaScript 中全部在客户端完成。另请参阅 this answer .

关于javascript - 如何使用 iPad 摄像头读取网站上的二维码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803927/

相关文章:

java - 将 SQLite 与我的 Java EE 应用程序集成的正确方法是什么?

web-services - SEI 和 WSDL 有什么区别

javascript - 如何在 javascript 中使用自动递增 id?

javascript - 在 create-react-app + typescript 中导入静态 JSON

javascript - 什么是正确的方法?使用 javascript 和 mysql

JavaScript index.js .babelrc 错误 "Do not clone comments tha...<omitted>... } could not be cloned"

javascript - 如何检测点击事件是否被 'Enter' 触发?

java - 生成递归目录搜索的 XML 映射

javascript - 将类添加到同位素中的过滤项目和隐藏项目。按钮不是复选框

javascript - Submit() 事件未在表单上触发