Java 扫描识别条形码图片
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) |
|
Static java.lang.String[] |
scan(java.awt.image.BufferedImage image, BarCodeType barcodeType) |
|
Static java.lang.String[] |
scan(java.awt.image.BufferedImage bitmap, |
|
Static java.lang.String[] |
scan(java.io.InputStream stream) |
|
Static java.lang.String[] |
scan(java.io.InputStream stream, |
|
Static java.lang.String[] |
scan(java.lang.String fileName) |
|
Static java.lang.String[] |
scan(java.lang.String fileName, BarCodeType barcodeType) |
|
Static java.lang.String[] |
scan(java.lang.String fileName, |
|
Static java.lang.String |
scanOne(java.awt.image.BufferedImage bitmap) |
|
Static java.lang.String |
scanOne(java.io.InputStream stream) |
|
Static java.lang.String |
scanOne(java.io.InputStream stream, |
|
Static java.lang.String |
scanOne(java.lang.String fileName) |
|
Static java.lang.String |
scanOne(java.lang.String fileName, |
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 扫描识别条形码图片的更多相关文章
- Android实现OCR扫描识别数字图片之图片扫描识别
[Android实例] Android实现OCR扫描识别数字图片之图片扫描识别 Android可以识别和扫描二维码,但是识别字符串呢? google提供了以下解决方案用的是原来HP的相关资料. 可以吧 ...
- Java 创建/识别条形码、二维码
条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常用于标示物品的生产国.制造厂家.商品名称.生产日期.图书分类号.邮件起止地点.类别.日期等 ...
- java指纹识别+谷歌图片识别技术_源代码
主类: import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; public c ...
- java指纹识别+谷歌图片识别技术
http://www.icodeguru.com/3/2451.html http://valseonline.org/thread-124-1-1.html
- c#OpenCVSharp+Zxing识别条形码
参考博客:https://www.cnblogs.com/dengxiaojun/p/5278679.html,但是他的demo下载太贵了 可以下载这个https://download.csdn.ne ...
- HTML5实现扫描识别二维码/生成二维码
扫描识别二维码 思路: 1. 操作摄像头,获取图片.HTML5 WEBRTC的navigator.getUserMedia方法去实时获取摄像头资源. 2. 利用canvas使用相关算法分析图片识别图 ...
- Android名片扫描识别系统SDK
Android名片扫描识别系统SDK 一.Android名片扫描识别系统应用背景 这些年,随着移动互联的发展,APP应用成爆发式的增长,在很多APP中都涉及到对名片信息的录入,如移动CRM.移动端OA ...
- 手机摄像头扫描识别车牌号,移动端车牌识别sdk
一.移动端车牌识别应用背景 (技术交流:18701686857 QQ:283870550) 随着经济水平的不断提高,汽车数量的不断激增为汽车管理带来了不小的难度.路边违章停车的现象越来越频繁.现在, ...
- JAVA验证码识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本
JAVA验证识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本 工具准备: jTessBoxEditorFX下载:https://github.com/nguyenq/jT ...
随机推荐
- C++面向对象 1(类-封装)
1 //类和对象 2 //C++ 面向对象 三大特性 : 封装 继承 多态 3 4 //设计一个圆类,求圆的周长 5 //圆周长 = 2*PI * 半径 6 7 #include <iostre ...
- 如何评价《Java 并发编程艺术》这本书?
对于书评这件事情,我其实是不想写的,因为每个人都有自己的一个衡量标准,每个人眼中都有自己的哈姆雷特,是好是坏每个人都褒贬不一.如果对于书中的知识你都掌握了,你只是想把它作为一种知识串联的记忆体的话,那 ...
- Java时间类从此变得清晰明了
Java时间类 Java时间类分为Date 日期类和Calendar 日历类,相信很多小伙伴在初学时会对这个两个类的用法.区别以及有什么联系会感到疑惑,似乎懂了,但又不能具体说清,今天再带你来清晰的再 ...
- 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)
算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...
- windows运行Tomcat配置自定义的jdk环境运行。
找到tomcat下的bin目录下文件 setclasspath.bat 第二行加上你想运行的jdk路径即可. set "JRE_HOME=D:\Program Files (x86)\jdk ...
- PostgreSQL 13.4的安装记录
PostgreSQL 13.4的安装记录 想着MySQL被Oracle给买了,总得做点别的准备不是,找了找别的开源的关系型数据库,貌似PostgreSQL的评价很不错,就试试先 因为是window10 ...
- hdmi 随笔
从图片来看,每张图片开始传输的是45像素的垂直同步, 1.控制数据贯穿所有时间,没个不是控制数据的传输都被控制数据包围.控制数据还要通过控制位指示,下一个数据是数据岛还是视频信号. 2.terc4 全 ...
- idea中导包出现import org.apach.*,提交代码老出现冲突,不想使用.*的设置
打开设置>Editor>Code Style>Java>Scheme Default>Imports ① 将Class count to use import with ...
- 大数据学习之 LINUX
##大数据学习 古斌6.6 01. linux系统的搭建: 选用 Contos 6.5 x64位系统 (CentOS-6.5-x86_64-minimal.iso) 我选择的为迷你版 模板机: bla ...
- jquery validate 验证插件 解决多个相同的Name 只验证第一个的方案
方案一:如果 项目里不是只是个别页面 有多个name 验证, 那么利用 prototype 来写,把这段代码加在你所要使用多个name的页面 的js初始化里 即可 if ($.validator) ...