1.条形码扫描识别的实现方法及步骤

本文以Java代码示例介绍如何来扫描和识别条形码图片。这里使用免费条码工具 Free Spire.Barcode for Java,调用BarcodeScanner类中的scan(java.lang.String fileName, BarCodeType barcodeType)方法扫描识别指定类型条码中包含的数据。在编辑代码前,先参考如下步骤手动将jar包导入Java程序:

完成导入:

【Java】

import com.spire.barcode.*;

public class ScanBarcode {
public static void main(String[] args)throws Exception{
String[] datas = BarcodeScanner.scan("EAN_13.png", BarCodeType.EAN_13);
System.out.print(datas[0]);
}
}

执行程序,扫描识别条形码图片,获取条码中包含的数据:

2.条形码扫描的方法归纳

这里的BarcodeScanner类提供了多个扫描图片的方法,见下表1

表格1:

Method Summary

 

static java.lang.String[]

scan(java.awt.image.BufferedImage bitmap)

          Scan barcode from
bitmap.

Static java.lang.String[]

scan(java.awt.image.BufferedImage image, BarCodeType barcodeType)

          Scan barcode from
image.

Static java.lang.String[]

scan(java.awt.image.BufferedImage bitmap,
java.awt.Rectangle rect, BarCodeType barcodeType)

          Scans barcode
from bitmap.

Static java.lang.String[]

scan(java.io.InputStream stream)

          Scan barcode from
image stream.

Static java.lang.String[]

scan(java.io.InputStream stream,
boolean IncludeCheckSum)

          Scan barcode from
image stream.

Static java.lang.String[]

scan(java.lang.String fileName)

          Scan barcode from
image file.

Static java.lang.String[]

scan(java.lang.String fileName, BarCodeType barcodeType)

          Scans barcode
from image file.

Static java.lang.String[]

scan(java.lang.String fileName,
boolean IncludeCheckSum)

          Scan barcode from
image file.

Static java.lang.String

scanOne(java.awt.image.BufferedImage bitmap)

          Scan barcode from
bitmap.

Static java.lang.String

scanOne(java.io.InputStream stream)

          Scan barcode from
image stream.

Static java.lang.String

scanOne(java.io.InputStream stream,
boolean IncludeCheckSum)

          Scan barcode from
image stream.

Static java.lang.String

scanOne(java.lang.String fileName)

          Scan barcode from
image file.

Static java.lang.String

scanOne(java.lang.String fileName,
boolean IncludeCheckSum)

          Scan barcode from
image file.

3. 条码生成及扫描类型汇总

因本次使用的是免费版的Barcode API,对支持生成的条码类型以及扫描的条码类型上有所限制,详细内容见下表2。在使用时,可根据自己的程序要求看条码类型是否支持。

表格-2

条形码类型

生成的条形码类型

扫描条形码类型

CODE 25

×

×

CODABAR

CODE 11

INTERLEAVED 25

×

×

CODE 39

CODE 39 EXTENDED

CODE 93

CODE 93 EXTENDED

CODE 128

EAN 8

EAN 13

EAN 128

×

EAN 14

SCC 14

SSCC 18

×

×

ITF 14

×

×

ITF 6

×

×

UPCA

×

×

UPCE

×

×

POST NET

×

SINGAPORE POST 4 STATE

×

×

PLANET

×

×

MSI

×

×

RSS 14

×

×

RSS 14 TRUNCATED

×

×

RSS LIMITED

×

×

RSS EXPANDED

×

×

USPS

×

×

SWISS POST PARCEL

×

×

PZN

×

×

OPC

×

×

DEUTSCHE POST IDENTCODE

×

×

DEUTSCHE POST LEITCODE

×

×

ROYAL MAIL 4 STATE

×

×

DATA MATRIX

×

×

QR CODE

×

PDF 417

×

×

PDF 417 MACRO

×

×

注释: √ 表示支持,× 表示不支持

—End—

Java 扫描识别条形码图片的更多相关文章

  1. Android实现OCR扫描识别数字图片之图片扫描识别

    [Android实例] Android实现OCR扫描识别数字图片之图片扫描识别 Android可以识别和扫描二维码,但是识别字符串呢? google提供了以下解决方案用的是原来HP的相关资料. 可以吧 ...

  2. Java 创建/识别条形码、二维码

    条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常用于标示物品的生产国.制造厂家.商品名称.生产日期.图书分类号.邮件起止地点.类别.日期等 ...

  3. java指纹识别+谷歌图片识别技术_源代码

    主类: import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; public c ...

  4. java指纹识别+谷歌图片识别技术

    http://www.icodeguru.com/3/2451.html http://valseonline.org/thread-124-1-1.html

  5. c#OpenCVSharp+Zxing识别条形码

    参考博客:https://www.cnblogs.com/dengxiaojun/p/5278679.html,但是他的demo下载太贵了 可以下载这个https://download.csdn.ne ...

  6. HTML5实现扫描识别二维码/生成二维码

    扫描识别二维码 思路: 1. 操作摄像头,获取图片.HTML5 WEBRTC的navigator.getUserMedia方法去实时获取摄像头资源.  2. 利用canvas使用相关算法分析图片识别图 ...

  7. Android名片扫描识别系统SDK

    Android名片扫描识别系统SDK 一.Android名片扫描识别系统应用背景 这些年,随着移动互联的发展,APP应用成爆发式的增长,在很多APP中都涉及到对名片信息的录入,如移动CRM.移动端OA ...

  8. 手机摄像头扫描识别车牌号,移动端车牌识别sdk

    一.移动端车牌识别应用背景 (技术交流:18701686857  QQ:283870550) 随着经济水平的不断提高,汽车数量的不断激增为汽车管理带来了不小的难度.路边违章停车的现象越来越频繁.现在, ...

  9. JAVA验证码识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本

    JAVA验证识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本 工具准备: jTessBoxEditorFX下载:https://github.com/nguyenq/jT ...

随机推荐

  1. Java面向对象14——接口

    接口  package oop.demon01.demon09; ​ //抽象思维~Java ​ //interface 定义的关键字 , 接口都需要有实现类 public interface Use ...

  2. Salesforce Integration 概览(七) Data Virtualization数据可视化

    本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf Salesforc ...

  3. React Class组件生命周期

    一.react组件的两种定义方式 1.函数组件,简单的函数组件像下面这样,接收Props,渲染DOM,而不关注其他逻辑 function Welcome(props) { return <h1& ...

  4. Notes about multiboot usb creator

    U盘上的多系统启动工具,Windows上YUMI比较好,Ubuntu上MultiSystem用法复杂,unetbootin是另外一款,需要安装p7zip(apt-get install p7zip-f ...

  5. MySQL-10-索引应用规范

    建立索引的原则 SQL文件 sql文件下载链接: https://alnk-blog-pictures.oss-cn-shenzhen.aliyuncs.com/blog-pictures/world ...

  6. JVM-初见

    目录 JVM的体系结构 类加载器 双亲委派机制 Native PC程序计数器 方法区(Method Area) 栈 堆 调优工具 常见JVM调优参数 常见垃圾回收算法 引用计数算法 复制算法 标记-清 ...

  7. epoll水平/边缘触发模式下阻塞/非阻塞EPOLLOUT事件触发条件及次数

    在IO多路复用技术中,epoll默认的事件触发模式为Level_triggered(水平触发)模式,即当被监控的文件描述符上有可读/写事件发生时,epoll_wait()会通知处理程序去读写.如果这次 ...

  8. BUUCTF刷题系列(2)5.27日记

    CTF-Bugku-安卓篇1signin Writeup Bugku安卓部分第一题,第七届山东省大学生网络安全技能大赛的题目,属于Android逆向分析.(常用工具:安卓模拟器.JEB.Cyberch ...

  9. 使用VSCode创建第一个VUE项目

    vue init webpack vue_test回车,然后输入工程名称vue_test vue:Missing space before value for key 'components' 原因是 ...

  10. 一 &#183; 路由事件的三种方式/策略(冒泡 直接 隧道)

    WPF中的路由事件是沿着VisualTree传递的,作用是用来调用应用程序的元素树上的各种监听器上的处理程序. (1)冒泡,这种事件处理方式是从源元素向上级流过去,直到到达根节点即顶层节点,一般为最外 ...