作者:桃花救赎 | 来源:互联网 | 2023-05-18 18:07
barcode方法Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Barcode.jar文件导入到java程序。参考如下导入效果:
![](https://img3.php1.cn/3cdc5/6447/711/f0818ae85783a254.png)
方法2:可以使用maven仓库安装导入。可参考导入方法。
decode方法Jar文件获取及导入:
可以直接使用maven导入:
com.google.zxingjavase3.3.3
代码:
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 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();}}}