import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class QrCodeUtil {
private final static int WIDTH = 300;// 二维码的宽度
private final static int HEIGHT = 300;// 二维码的高度
private final static String FORMAT = "jpg";// 二维码的格式
public static String encodeQrCode(String textParam) {
/*
* 定义二维码的参数
*/
HashMap<EncodeHintType, Object> hashMap = new HashMap<EncodeHintType, Object>();
// 设置二维码字符编码
hashMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");
// 设置二维码纠错等级
hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
// 设置二维码边距
hashMap.put(EncodeHintType.MARGIN, 2);
try {
// 开始生成二维码
BitMatrix bitMatrix = new MultiFormatWriter().encode(textParam, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hashMap);
// 导出到指定目录
String path = "E:\IMG\testImg.jpg";
String fileName = UUID.randomUUID().toString().replace("-", "") + ".jpg";
File file = new File(path, fileName);
// 如果文件目录不存在,创建目录
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
MatrixToImageWriter.writeToPath(bitMatrix, FORMAT, file.toPath());
// 获取 图片(文件)的存放地址
String paramPathString = file.getPath();
// 将反斜杠 \ 替换成 正斜杠 /
paramPathString = paramPathString.replaceAll("\\\\", "/");
return paramPathString;
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
java 生成带参数的二维码并保存到指定目录
最新推荐文章于 2024-08-04 11:07:52 发布