简单条形码Demo
maven依赖
<!-- 条形码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>
核心代码
public class ZxingUtil {
private static final Integer WIDTH = 105;
private static final Integer HEIGHT = 50;
public static Boolean encode(String codeNumber,String imgPath){
int codeWidth = 3 + (7 * 6) + 5 + (7 * 6) + 3;
codeWidth = Math.max(codeWidth,WIDTH);
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(codeNumber,
BarcodeFormat.CODE_128,codeWidth,HEIGHT,null);
MatrixToImageWriter
.writeToFile(bitMatrix,"jpg",new File(imgPath));
return true;
} catch (Exception e){
e.printStackTrace();
return false;
}
}
public static String decode(String imgPath){
try {
BufferedImage image = ImageIO.read(new File(imgPath));
if (image == null){
System.out.println("这个条形码不存在");
return "解析失败";
}
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result result = new MultiFormatReader().decode(bitmap,null);
return result.getText();
}catch (Exception e){
e.printStackTrace();
return "解析失败";
}
}
public static void main(String[] args) {
String contents = "201010320190820001";
String url = "E:\\upload\\" + contents + ".jpg";
ZxingUtil.encode(contents, url);
System.out.println("完成编码!");
String decodeContent = ZxingUtil.decode(url);
System.out.println("解码内容如下:" + decodeContent);
System.out.println("完成解码!");
}
}