使用JavaScript根据图片获取条形码的方法


Posted in Javascript onJuly 04, 2017

最近在弄一个零售超市的项目,但是苦于需要自己录入数据,超市少的也有1000多种商品,自己一个一个录入肯定不太现实,所以考虑扫描商品的条形码,根据条形码获取商品的信息这样效率就高多了。

根据条形码获取商品信息这个在网上有很多api一般都是付费的费用不高,可以直接拿来用,这里就略过了。

这里重点说说JavaScript识别图片中的条形码。

开源库quaggaJS

项目地址:https://github.com/serratus/quaggaJS

这里要感谢大神提供这么牛B的js库,让我的想法得以实现!

这个库的使用方式也非常简单,在github上有很丰富的讲解,但是我只使用了其中一个扫描条形码图片,获取条形码的功能,所以我就直接把我需要的功能列举一个例子,有其他的需求的可以去上面的连接里面找。

页面部分

<html>
<body>
<section id="container" class="container">
 <div class="controls">
   <fieldset class="input-group">
     <input type="file" accept="image/*;capture=camera">
     <button>Rerun</button>
   </fieldset>
 </div>
 <div id="result_strip">
  <ul class="thumbnails"></ul>
 </div>
 <div id="interactive" class="viewport"><canvas class="imgBuffer" width="800" height="566"></canvas><canvas class="drawingBuffer" width="800" height="566"></canvas><br clear="all"></div>
</section>
<script src="jquery-1.11.0.min.js"></script>
<script src="quagga.min.js" type="text/javascript"></script>
<script src="file_input.js" type="text/javascript"></script>
</body>
</html>

JavaScript部分

$(function() {
   $(".controls button").on("click", function(e) {
    var input = document.querySelector(".controls input[type=file]");
    if (input.files && input.files.length) {
      Quagga.decodeSingle({
        inputStream: {
          size: 800 // 这里指定图片的大小,需要自己测试一下
        },
        locator: {
          patchSize: "medium",
          halfSample: false
        },
        numOfWorkers: 1,
        decoder: {
          readers: [{
            format: "ean_reader",// 这里指定ean条形码,就是国际13位的条形码
            config: {}
          }]
        },
        locate: true,
        src: URL.createObjectURL(input.files[0])
      }, function(result) {
         var code = result.codeResult.code,
          $node,
          canvas = Quagga.canvas.dom.image;
        // 将扫描得到的条形码打印出来
        $node = $('<li><div class="thumbnail"><div class="imgWrapper"><img /></div><div class="caption"><h4 class="code"></h4></div></div></li>');
        $node.find("img").attr("src", canvas.toDataURL());
        $node.find("h4.code").html(code);
        $("#result_strip ul.thumbnails").prepend($node);
      });
    }
  });
});

效果展示

使用JavaScript根据图片获取条形码的方法

以上所述是小编给大家介绍的使用JavaScript根据图片获取条形码的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 类型判断代码分析
Mar 28 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
js判断变量是否未定义的代码
Mar 28 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
May 05 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 Javascript
浅谈Vue.js
Mar 02 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
jquery拖动改变div大小
Jul 04 #jQuery
JavaScript无操作后屏保功能的实现方法
Jul 04 #Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
Jul 04 #Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 #Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 #Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 #Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 #Javascript
You might like
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
JS随机密码生成算法
2019/09/23 Javascript
Python实现字典去除重复的方法示例
2017/07/31 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python实现月食效果实例代码
2019/06/18 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
没编程基础可以学python吗
2020/06/17 Python
Python同时处理多个异常的方法
2020/07/28 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
初婚未育未抱养证明
2014/01/12 职场文书
给老师的检讨书
2014/02/11 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
督导岗位职责
2015/02/04 职场文书
婚宴新郎致辞
2015/07/28 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技