参考所得
第一步: 下载两个jar包:qrcode.jar和qrcode_swetake.jar
链接:https://pan.baidu.com/s/1RdW7cWz9-mErx13T-QxnHg
提取码:e44a
第二步: 二维码生成代码编写
1》、
package com.zhao.controller; import com.zhao.util.CreateQRCode; public class 二维码 { public static void main(String[] args) { String data = "同志,我想盘你!!!!!!!!!!!!!!!"; /** * 生成二维码 */ CreateQRCode.encode(data, "C:/Users/acer/Desktop/二维码/hehe.JPG"); /** * 解析二维码 */ //CreateQRCode.decode("D:/test/微信公众账号.JPG"); } }
工具类CreateQRCode .java
package com.zhao.util; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.swetake.util.Qrcode; public class CreateQRCode { //生成二维码 public static boolean encode(String srcValue, String qrcodePicfilePath){ int MAX_DATA_LENGTH = 200; byte[] d = srcValue.getBytes(); int dataLength = d.length; int imageWidth = 113; int imageHeight = imageWidth; BufferedImage bi = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, imageWidth, imageHeight); g.setColor(Color.BLACK); if (dataLength > 0 && dataLength <= MAX_DATA_LENGTH) { Qrcode qrcode = new Qrcode(); qrcode.setQrcodeErrorCorrect('M'); qrcode.setQrcodeEncodeMode('B'); qrcode.setQrcodeVersion(5); boolean[][] b = qrcode.calQrcode(d); int qrcodeDataLen = b.length; for (int i = 0; i < qrcodeDataLen; i++) { for (int j = 0; j < qrcodeDataLen; j++) { if (b[j][i]) { g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3); } } } System.out.println("二维码成功生成!!"); } else { System.out.println( dataLength +"大于"+ MAX_DATA_LENGTH); return false; } g.dispose(); bi.flush(); File f = new File(qrcodePicfilePath); String suffix = f.getName().substring(f.getName().indexOf(".")+1, f.getName().length()); System.out.println("二维码输出成功!!"); try { ImageIO.write(bi, suffix, f); } catch (IOException ioe) { System.out.println("二维码生成失败" + ioe.getMessage()); return false; } return true; } //解析二维码 /* public static String decode(String qrcodePicfilePath) { System.out.println("开始解析二维码!!"); 读取二维码图像数据 File imageFile = new File(qrcodePicfilePath); BufferedImage image = null; try { image = ImageIO.read(imageFile); } catch (IOException e) { System.out.println("读取二维码图片失败: " + e.getMessage()); return null; } 解二维码 QRCodeDecoder decoder = new QRCodeDecoder(); String decodedData = new String(decoder.decode(new QRCodeImage(image))); System.out.println("解析内容如下:"+decodedData); return decodedData; } */ }
第三步:执行main函数 结果如下图
生成二维码结果如下图
扫二维码得结果如下:
到此over。解析二维码代码自己琢磨。