在一些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生成二维码的案例是不是很简单?
最后按照惯例,附上本案例的源码,登陆后即可下载。
还没有评论,来说两句吧...