使用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 19 Javascript
ASP中Sub和Function的区别说明
Aug 30 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
node+express制作爬虫教程
Nov 11 Javascript
详解Javascript百度地图接口开发文档中的类和方法
Feb 07 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 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
最常用的8款PHP调试工具
2014/07/06 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PHP的自定义模板引擎
2017/03/24 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
美国购车网站:TrueCar
2016/10/19 全球购物
工程监理应届生求职信
2013/11/09 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
员工培训邀请函
2014/01/11 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
历史博物馆观后感
2015/06/05 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL