0

我正在尝试以静态文件的方式实现 QuaggaJS,但显然我遗漏了一些东西。我对javascript很陌生,因此希望我错过了一些非常简单的东西。假设我在与此代码相同的目录中有一个名为 123456.jpg 的 .jpg 文件,我希望代码仅将条形码值作为警报返回。非常感谢任何帮助(并且完全准备好因为我对 javascript 缺乏了解而受到抨击!)

我的代码如下:

<script src="http://www.myserver.com/v3/javascripts/jquery-2.0.0.min.js" type="text/javascript"></script>
<script src="js/quagga.min.js" type="text/javascript"></script>

<script>

Quagga.decodeSingle({
    decoder: {
        readers: ["code_39_reader"] // List of active readers
    },
    locate: true, // try to locate the barcode in the image
    src: '123456.jpg' // or 'data:image/jpg;base64,' + data
}, function(result){
    if(result.codeResult) {
        console.log("result", result.codeResult.code);
        alert(result.codeResult.code);
    } else {
        console.log("not detected");
        alert("not detected");
    }
});


</script>
4

1 回答 1

0

也许笨拙......但我得到以下内容来解码位于同一目录中的静态 .jpg 文件中的 Code_39 条形码,在页面加载时:

<div>
    <div id="resultdiv">scanning... </div>
</div>


<script src="../js/quagga.js" type="text/javascript"></script>
<script type="text/javascript">

    var Quagga = window.Quagga;
    var App = {
        _scanner: null,
        init: function() {

            this.decode();
        },
        decode: function(file) {
            Quagga
                .decoder({readers: ['code_39_reader']})
                .locator({patchSize: 'x-small'})
                .fromSource('converted.jpg', {size: 1920})
                .toPromise()
                .then(function(result) {
                    document.getElementById("resultdiv").innerHTML=result.codeResult.code; 
                })
                .catch(function() {
                    document.getElementById("resultdiv").innerHTML= "Not Found"; 
                })

        }
    };
    App.init();

</script>
于 2019-09-27T14:34:13.017 回答