从 Web浏览器扫描条形码

我创建了一个智能手机应用程序,但我的目标是让它从浏览器工作。

我创建了一个智能手机应用程序,但我的目标是让它从浏览器工作。

sample image enter image description here

这是我正在使用的示例代码。我很确定这个问题与相机优化有关...

'''

<head>
    <meta cht="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>ZXing Barcode Scan</title>
    <link rel="stylesheet" rel="preload" as="style" onload="this.rel='stylesheet';this.onload=null" href="https://fonts.googlea.com/css?family=Roboto:300,300italic,700,700italic">
    <link rel="stylesheet" rel="preload" as="style" onload="this.rel='stylesheet';this.onload=null" href="https://unpkg.com/normalize.css@8.0.0/normalize.css">
    <link rel="stylesheet" rel="preload" as="style" onload="this.rel='stylesheet';this.onload=null" href="https://unpkg.com/milligram@1.3.0/dist/milligram.min.css">
</head>
<body>
    <main cl="wrapper" style="padding-top:2em">
        <section cl="container" id="demo-content">
            <h1 cl="title">Scan barcode from Video Camera</h1>
            <div>
                <a cl="on" id="startButton">Start</a>
                <a cl="on" id="resetButton">Reset</a>
            </div>
            <div style="padding: 0px; width: 100%; max-height: 200px; overflow:hidden; border: 1px solid gray">
                <video id="video" style="width: 100%;"></video>
            </div>
            <div id="sourceSelectPanel" style="display:none">
                <label for="sourceSelect">Change video source:</label>
                <select id="sourceSelect" style="max-width:400px">
                </select>
            </div>
            <label>Result:</label>
            <pre><code id="result"></code></pre>
        </section>
    </main>
    <script type="text/javascript" src="https://unpkg.com/@zxing/library@latest"></script>
    <script type="text/javascript">
        window.addEventListener('load', function () {
            let selectedDeviceId;
            const codeReader = new ZXing.BrowserMultiFormatReader()
            console.log('ZXing code reader initialized')
            codeReader.getVideoInputDevices()
                .then((videoInputDevices) => {
                    const sourceSelect = document.getElementById('sourceSelect')
                    selectedDeviceId = videoInputDevices[0].deviceId
                    if (videoInputDevices.length > 1) {
                        videoInputDevices.forEach((element) => {
                            const sourceOption = document.createElement('option')
                            sourceOption.text = element.label
                            sourceOption.value = element.deviceId
                            sourceSelect.appendChild(sourceOption)
                    })
                        sourceSelect.onchange = () => {
                            selectedDeviceId = sourceSelect.value;
        }
                        const sourceSelectPanel = document.getElementById('sourceSelectPanel')
                        sourceSelectPanel.style.display = 'block'
        }
                    document.getElementById('startButton').addEventListener('click', () => {
                        codeReader.decodeOnceFromVideoDevice(selectedDeviceId, 'video').then((result) => {
                            console.log(result)
                            document.getElementById('result').textContent = result.text
                    }).catch((err) => {
                        console.error(err)
                        document.getElementById('result').textContent = err
        })
        console.log(`Started continous decode from camera with id ${selectedDeviceId}`)
        })
    document.getElementById('resetButton').addEventListener('click', () => {
        document.getElementById('result').textContent = '';
        codeReader.reset();
        console.log('Reset.')
        })
        })
                .catch((err) => {
                    console.error(err)
                })
        })
    </script>
</body>
</html>

'''

Here is a sample of a barcode I cannot scan... enter image description here

0

你是对的,当我放大并用你的代码用手机扫描它时,它似乎确实有效。问题是你需要电脑有一个漂亮的相机,甚至我的 MacBook 2021 的相机也不够好。所以他们需要像高清网络摄像头一样近距离接触。

enter image description here

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(644)
在给定时间内计算点击次数 /空格键javascript
上一篇
如何沙箱不受信任的用户提交的JavaScript内容
下一篇

相关推荐

  • vue重新编译:如何使用Vue来构建动态Web应用

    Vue重新编译的过程主要包括以下步骤:安装Node.js和npm:你需要安装Node.js和npm,它们是Vue重新编译的必备环境。…

    2023-04-10 15:34:50
    0 81 38
  • javaee课程从零开始构建Web应用

    Java EE(Java Platform, Enterprise Edition)是一个由Oracle公司开发的基于Java语言的企业级应用程序平台。它提供了一系列的API,用于开发和部署企业级应用程序。Java EE支持Web服务,多种数据库连接,安全性,可扩展性和可管理性。…

    2023-03-25 03:31:16
    0 50 60
  • Web是什么专业:模板的隐式专业化是什么意思

    关于Web是什么专业的问题,在specialization means中经常遇到,在N3797::14/4 [temp]章(强调我的)…

    2022-11-25 14:50:54
    0 37 30
  • 批量删除 /转换.WebP文件

    我从文件夹中的页面下载了一些图像,并且所有图像都由.webp完成,例如toto.jpg.webp,titi.png.webp...…

    2022-11-20 07:58:14
    0 44 24
  • Web服务和ssh之间有什么区别

    我想知道web service和 ssh 之间有什么区别?…

    2022-12-19 04:24:14
    0 58 21
  • java web菜鸟教程:Java Web开发入门指南

    Java Web菜鸟教程是一个免费的在线教程,它提供有关Java Web开发的基础知识,并帮助开发人员掌握Java Web开发技术。它包括有关Servlet、JSP、HTML、CSS、Javascript、Ajax、XML、JSON等等内容,还有有关MySQL、Oracle、MongoDB等数据库的内容。…

    2023-04-11 12:09:35
    0 11 72
  • javaweb开发流程:实施JavaWeb应用程序的设计与开发流程

    示例示例Java Web开发流程:需求分析:分析客户的需求,具体包括功能需求、性能要求、安全性、可维护性等。…

    2023-05-09 00:25:20
    0 33 20
  • javaweb菜鸟教程从入门到精通

    Java Web菜鸟教程是一个免费的网络学习平台,旨在帮助初学者学习和掌握Java Web开发技术。它提供了丰富的教程,涵盖了Java Web开发的各个方面,包括Servlet、JSP、XML、Ajax、Struts2、Spring等。…

    2023-04-29 15:34:37
    0 80 44

发表评论

登录 后才能评论

评论列表(21条)