操作步骤
真的是灰常简单,导入三个jar包,十几行代码就搞定了。
源代码和jar包已经打包放在阿里云盘里面,文末有链接。
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author: 邹祥发
* @date: 2022/8/20 16:29
* 制作二维码
*/
public class Code {
public boolean CreateCode(String content, String path) throws Exception {
int width = 300;
int height = 300;
String format = "jpg";
Map<EncodeHintType, Object> map = new HashMap<>();
map.put(EncodeHintType.CHARACTER_SET, "utf-8");
//容错率等级L>M>Q>H,等级越高,所需要的扫描时间越长,但是准确率越高
map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
map.put(EncodeHintType.MARGIN, 2);
BitMatrix encode = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, map);
Path path1 = FileSystems.getDefault().getPath(path);
MatrixToImageWriter.writeToPath(encode, format, path1);
return true;
}
public static void main(String[] args) throws Exception {
//创建一个不会重复的UUID
String uuid = UUID.randomUUID().toString();
//去掉 - 并截取前8位
String name = uuid.replace("-", "").substring(0, 8);
//二维码存放的路径
String path = "D:\\code\\" + name + ".jpg";
//使用反射代替new关键字
Class<?> code = Class.forName("Code");
Code o = (Code) code.getDeclaredConstructor().newInstance();
boolean b = o.CreateCode("https://www.hqxiaozou.top", path);
if (b) {
System.out.println("二维码创建成功!");
System.out.println(path);
} else {
System.out.println("失败!");
}
}
}
注意:需要修改 boolean b = new Code().CreateCode("https://www.hqxiaozou.top", path);
中的代码,第一个参数改成你需要跳转的网页,或者写一段文字也可以。后面一个参数是二维码生成后保存的路径。
相关资料
jar包链接:https://www.aliyundrive.com/s/fMDeMzXTFj2