Java生成DataMarix码

package qrcode;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

/**
 *  okapibarcode-0.1.2.jar包下载地址: 
 *  https://mvnrepository.com/artifact/uk.org.okapibarcode/okapibarcode
 */
import uk.org.okapibarcode.backend.DataMatrix;
import uk.org.okapibarcode.backend.Symbol;
import uk.org.okapibarcode.output.Java2DRenderer;

public class Test {

	public static byte[] createDataMarix(String input) throws IOException {
		int magnification = 10;
		int barcodeSize = 0 * magnification;
		DataMatrix dataMatrix = new DataMatrix();
		dataMatrix.setDataType(Symbol.DataType.UTF8);
		dataMatrix.setPreferredSize(0);
		dataMatrix.forceSquare(true);
		dataMatrix.setContent(input);
		BufferedImage image = new BufferedImage((dataMatrix.getWidth() * magnification) + (2 * barcodeSize),
				(dataMatrix.getHeight() * magnification) + (2 * barcodeSize),
				BufferedImage.TYPE_INT_RGB);
		Graphics2D g2d = image.createGraphics();
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		g2d.setColor(Color.WHITE);
		g2d.fillRect(0, 0, (dataMatrix.getWidth() * magnification) + (2 * barcodeSize), (dataMatrix.getHeight() * magnification) + (2 * barcodeSize));
		Java2DRenderer renderer = new Java2DRenderer(g2d, 10, 0, Color.WHITE, Color.BLACK);
		renderer.render(dataMatrix);
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		ImageIO.write(image, "png", baos);
		return baos.toByteArray();
	}

	public static void main(String[] args) throws Exception {
		String savePath = "D:\\dataMatrix.jpg";
		String imgContent = "[)>@06@12S0002@P0621301260132@1P61891161@31P61891161@12VC11017921@10VCHN-SHANGHAI@2P@20P@6D20220622@14D20230622@30PN@ZN@K9230020736@16K029016233004@V702041422@3SS290162330075@Q500NAR000@20T1@1T20220622@2T@1Z@@";
		FileOutputStream fileOutputStream = new FileOutputStream(savePath);
		fileOutputStream.write(Test.createDataMarix(imgContent));
		System.out.println("DataMarix生成成功");
	}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值