简介:
二维码生成工具类
添加依赖
<!-- 生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
工具类:
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
/**
* 二维码生成
*/
public class ZxingCodeUtil {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
public static BufferedImage generateCode(String productId) throws WriterException, IOException {
// 这里是URL,扫描之后就跳转到这个界面
String text = productId;
int width = 80;
int height = 80;
// 二维码图片格式
// 设置编码,防止中文乱码
Hashtable<EncodeHintType, Object> ht = new Hashtable<EncodeHintType, Object>();
// ht.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, ht);
int b_width = bitMatrix.getWidth();
int b_height = bitMatrix.getHeight();
// 建立图像缓冲器
BufferedImage image = new BufferedImage(b_width, b_height, BufferedImage.TYPE_3BYTE_BGR);
for (int x = 0; x < b_width; x++) {
for (int y = 0; y < b_height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
private static Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>() {
private static final long serialVersionUID = 1L;
{
put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);// 设置QR二维码的纠错级别(H为最高级别)
put(EncodeHintType.CHARACTER_SET, "utf-8");// 设置编码方式
put(EncodeHintType.MARGIN, 0);
}
};
//使用
public static void main(String[] args) {
String url = "null";
try{
BufferedImage image = com.wx.javafx.javafx.utils.ZxingCodeUtil.generateCode(url);
} catch (Exception e) {
e.printStackTrace();
}
}
}
此文章为该作者原创,禁止转载。