在一些ToC的场景里面,有时候会涉及到一些关于邀请码的一些激励机制。如果用户比较多的话,我们经常会在后台跑脚本批量给用户生成对应的二维码。然后在使用的时候直接回显对应的二维码即可。现在网上生成二维码的案例比较多,而且还有很多的在线二维码的生成工具。这里我们演示下使用java生成二维码图片的案例。
这里我们主要使用的库是谷歌的zxing的库,所以这里我们创建一个maven的项目,然后引入谷歌的zxing依赖包即可:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.5.2</version> </dependency>
然后我们创建一个公共的生成方法:
/**
*
* @param data 二维码展示的数据
* @param width 二维码图片的宽度
* @param height 二维码图片的高度
* @param filePath 保存二维码的图片完整地址
*/
public static void generateQRCode(String data, int width, int height, String filePath) {
try {
Map<EncodeHintType, Object> hints = new HashMap<>();
// 设置字符编码
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
// 错误纠正级别
hints.put(EncodeHintType.ERROR_CORRECTION, com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.H);
// 二维码边距
hints.put(EncodeHintType.MARGIN, 1);
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix bitMatrix = writer.encode(data, BarcodeFormat.QR_CODE, width, height, hints);
// 创建BufferedImage对象来表示QR码
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? Color.BLACK.getRGB() : Color.WHITE.getRGB());
}
}
// 将QR码保存到文件
File qrCodeFile = new File(filePath);
ImageIO.write(image, "png", qrCodeFile);
System.out.println("二维码生成成功,并且存储地址是: " + filePath);
} catch (Exception e) {
e.printStackTrace();
}
}以上就是一个公共的类,我们可以对二维码图片设置一些:
二维码图片宽度 二维码图片高度 二维码的颜色
然后直接调用就可以了:
public static void main(String[] args) {
//二维码原始数据
String data = "https://www.80wz.com";
// 二维码的宽度
int width = 300;
// 二维码的高度
int height = 300;
String filePath = "C:\\Users\\Administrator\\Downloads\\qrcode.png"; // 生成的QR码文件的路径
generateQRCode(data, width, height, filePath);
}最后我们测试一下,就可以看到生成成功了:
然后我们到对应的路径就可以看到生成的二维码了:
扫描这个二维码就可以打开咱们当前的网站了。整个使用java生成二维码的案例是不是很简单?
最后按照惯例,附上本案例的源码,登陆后即可下载。











还没有评论,来说两句吧...