1.pom加入的依赖:
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
2.新建工具类:
package net.longjin.normalCase.controller; import com.google.zxing.BarcodeFormat; import com.google.zxing.MultiFormatWriter; import com.google.zxing.common.BitMatrix; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; /** * 描述:QRcodeImageUtil * * @author 何志鹏 * @ClassName:QRcodeImageUtil * @create 2020-04-26 11:28 * Version 1.0 */ public class QRcodeImageUtil { private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; /** * 根据字符串生成对应的二维码图片png * 大小:200*200 * * content:要转换的内容 * path:生成的二维码图片的绝对路径 * filename: 生成的文件名 */ public static void buildQuickMark(String content, String path, String filename) throws Exception { try { BitMatrix byteMatrix = new MultiFormatWriter().encode(new String(content.getBytes(), "iso-8859-1"), BarcodeFormat.QR_CODE, 200, 200); String format = "png"; File file = new File(path+"\\"+filename+"."+format); BufferedImage image = toBufferedImage(byteMatrix); if (!ImageIO.write(image, format, file)) { throw new IOException("Could not write an image of format " + format + " to " + file); } } catch (Exception e) { e.printStackTrace(); } } private static BufferedImage toBufferedImage(BitMatrix matrix) { int width = matrix.getWidth(); int height = matrix.getHeight(); 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, matrix.get(x, y) ? BLACK : WHITE); } } return image; } }
3.示例代码测试:
public static void main(String[] args) throws Exception{ String content = "调用微信官网https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET生成的Json字符串" ; String path = "D:/photo";//二维码生成的位置 String filename = "test";//二维码名称 QRcodeImageUtil .buildQuickMark(content, path, filename); System.out.println("done"); }
以上会生成一张二维码图片保存到D:/photo目录