java 条形码 识别技术_Java条形码生成技术-Barcode4j

本文介绍了一个Java工具类`BarcodeUtil`,该类使用Barcode4j库来生成Code39条形码。提供了生成条形码并保存为文件、生成条形码字节流以及直接输出到流的方法。示例代码中展示了如何生成包含字符串`123456789`的PNG格式条形码图片。
摘要由CSDN通过智能技术生成

packageutils;importjava.awt.image.BufferedImage;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importorg.apache.commons.lang.StringUtils;importorg.krysalis.barcode4j.impl.code39.Code39Bean;importorg.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;importorg.krysalis.barcode4j.tools.UnitConv;/*** 条形码工具类

*

*@authortangzz

* @createDate 2015年9月17日

**/

public classBarcodeUtil {/*** 生成文件

*

*@parammsg

*@parampath

*@return

*/

public staticFile generateFile(String msg, String path) {

File file= newFile(path);try{

generate(msg,newFileOutputStream(file));

}catch(FileNotFoundException e) {throw newRuntimeException(e);

}returnfile;

}/*** 生成字节

*

*@parammsg

*@return

*/

public static byte[] generate(String msg) {

ByteArrayOutputStream ous= newByteArrayOutputStream();

generate(msg, ous);returnous.toByteArray();

}/*** 生成到流

*

*@parammsg

*@paramous*/

public static voidgenerate(String msg, OutputStream ous) {if (StringUtils.isEmpty(msg) || ous == null) {return;

}

Code39Bean bean= newCode39Bean();//精细度

final int dpi = 150;//module宽度

final double moduleWidth = UnitConv.in2mm(1.0f /dpi);//配置对象

bean.setModuleWidth(moduleWidth);

bean.setWideFactor(3);

bean.doQuietZone(false);

String format= "image/png";try{//输出到流

BitmapCanvasProvider canvas= newBitmapCanvasProvider(ous, format, dpi,

BufferedImage.TYPE_BYTE_BINARY,false, 0);//生成条形码

bean.generateBarcode(canvas, msg);//结束绘制

canvas.finish();

}catch(IOException e) {throw newRuntimeException(e);

}

}public static voidmain(String[] args) {

String msg= "123456789";

String path= "barcode.png";

generateFile(msg, path);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值