参考所得
第一步: 下载两个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。解析二维码代码自己琢磨。