java扫描条形码的两种方式
barcode方法Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Barcode.jar文件导入到java程序。参考如下导入效果:
方法2:可以使用maven仓库安装导入。可参考导入方法。
decode方法Jar文件获取及导入:
可以直接使用maven导入:
<!--条形码扫描--><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version></dependency>
代码:
import com.google.zxing.*;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeScanner;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;/*** @author Luo罗* @company Ytrees——野树* @date 2022/1/14 16:59* @Package PACKAGE_NAME* class*/
public class Test {public static void main(String[] args) {long startTime = System.currentTimeMillis(); // 获取开始时间SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式System.out.print("程序开始执行时间:");System.out.println(df.format(new Date()));// new Date()为获取当前系统时间try {barcode("C:\\Users\\Yeshu\\a.jpg");//decode("C:\\Users\\Yeshu\\c.jpg");//decode("C:\\Users\\Yeshu\\f.jpg");} catch (Exception e) {e.printStackTrace();}long endTime = System.currentTimeMillis(); // 获取结束时间System.out.print("程序结束执行时间:");System.out.println(df.format(new Date()));// new Date()为获取当前系统时间long l = endTime - startTime;double time = (l % (1000 * 60)) / 1000.0;System.out.println("程序总运行时间: " + time + "秒");}/*** 推荐使用* @param imgPath* @return String*/public static String decode(String imgPath) {try {System.out.println("使用 zxing 扫描");BufferedImage image = ImageIO.read(new File(imgPath));if (image == null) {return "";}LuminanceSource source = new BufferedImageLuminanceSource(image);BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));Map<DecodeHintType, Object> hints = new HashMap<>();hints.put(DecodeHintType.CHARACTER_SET, "GBK");hints.put(DecodeHintType.PURE_BARCODE, Boolean.TRUE);hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);Result result = new MultiFormatReader().decode(bitmap, hints);System.out.println();System.out.println("快递单号:"+result.getText());System.out.println();return result.getText();} catch (Exception e) {e.printStackTrace();}return "";}public static void barcode(String imgPath) throws Exception {System.out.println("使用 barcode 扫描");String[] datas = BarcodeScanner.scan(imgPath,BarCodeType.Code_128);for (String data : datas) {System.out.println();System.out.println("快递单号:"+data);System.out.println();}}}
java扫描条形码的两种方式相关推荐
- 创建和应用Java包文件的两种方式(转)
创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1 包--package ... 12.1.1 包命名规 ...
- java制作oracle程序,Java程序操作Oracle两种方式之简单实现
Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...
- Java 实现抽奖的两种方式
Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...
- Java格式化倒计时的两种方式
Java格式化倒计时的两种方式 第一种方式 /*** 入参是一个每秒减小1的秒数* 返回一个格式化的时间* * 该方法具有局限性,他在时间大于1个小时的时候,会返回错误的时间* 因为该方法调用了Dat ...
- java操作Excel有两种方式 方式1:jxl操作Excel jxl的API
java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...
- java 产生随机数的两种方式,Java产生随机数的两种方式
Java产生随机数的两种方式 Java产生随机数的两种方式 在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.M ...
- Java读取证书的两种方式
关于证书基础以及创建.查看.删除.导入.导出以及其他功能详解请参照:Java使用keytool创建CA证书 Java读取证书有两种方式 1.从文件中读取 public static void main ...
- java 实现websocket的两种方式
简单说明 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...
- 创建和应用Java包文件的两种方式
<Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1 包--package 包是Java提供的文件管理机制.包把功能相似的类,按照Java的名字 ...
- java文件读写的两种方式
今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...
最新文章
- IHttpHandler的妙用(1):给图片添加水印
- [2016-04-19 15:46:03 - IceHoloReader1.0] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER [20
- Android生成Xml文件
- NYOJ 767 因子和
- 第一代计算机主要应用领域为数据处理,第一代计算机主要应用领域为____。 A.数据处理 B.人工智能 C.科学计算 D.过程控制...
- CPU-内存-IO-网络调优
- AppTheme属性设置集合
- 记录淘宝里的点点滴滴
- plc编程和python的联系_Python与三菱PLC通信
- BCM SIP ALG原理及实现(应用层实现机制)
- gitup上传的坑 ! [rejected] master -> dev-gaochao (fetch first)......
- 购买内存需要注意看哪些
- java的接口常用命名_Java命名和目录接口,Java Naming and Directory Interface,音标,读音,翻译,英文例句,英语词典...
- 计算机毕业生城市分布情况,2018年中国各省份高考生数量、高校毕业生就业流入集中区及各省份毕业生数量分布情况分析【图】...
- 视频剪辑使用的素材得怎么找?
- MyEclipse7.02注册码
- Python Web开发——Django框架学习
- spring 狂神说的详细笔记(完整版)
- HCIP | 华为防火墙配置
- Linux一个内存大页多大,Linux中的“大内存页”(hugepage)是个什么?
热门文章
- 计算机设备没有音频,电脑找不到音频设备是怎么回事_电脑没有音频设备怎么处理...
- 一些比较好用的网站整站下载工具
- OMRON欧姆龙触摸屏维修NT620C-ST141-E
- 计算机通信技术【计算机网络】学习
- 中国象棋棋谱棋书链接
- JavaScript与浏览器
- 2020 智能零售领域最具商业合作价值企业盘点
- cad黑色背景变成白色_CAD操作记不全?看这个就够了!附上全面整理,动图教程-深圳造价培训...
- 如何清除夏普AR-2408CN打印机屏出现小人小太阳
- 嵌入式硬件学习——分压电路