巩固自身,分享别人
因为代码注释比较多,所以就不多加解释。
package com.qrcode;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;
/**
* 二维码,送女朋友
*/
public class QRcodeUtil {
/**
* 这个类的入口
*
* @param args
*/
public static void main(String[] args) {
// 创建一个信息
String message = "520";
// 定义一个字节数组
byte[] messageBytes = null;
// 定义一个图片文件的缓冲对象
BufferedImage bufferedImage = null;
// 定义一个画板 --》画板就是图片的载体
Graphics2D gs = null;
// 创建一个二维码对象
Qrcode qrcode = new Qrcode();
// 对二维码的一些属性进行设置
// 容错率 容错率越大,能存储的东西就越少
// L7 M15 Q25 H30
qrcode.setQrcodeErrorCorrect('M');
// 设置编码的方式
qrcode.setQrcodeEncodeMode('B');
// 设置尺寸 尺寸越大 存储的信息就越多
qrcode.setQrcodeVersion(10);
// 设置图像的尺寸 --- 尺寸
int len = 171;
try {
// 得到信息转换成的数组
messageBytes = message.getBytes("utf-8");
// 创建图片缓冲对象
bufferedImage = new BufferedImage(len, len,
BufferedImage.TYPE_INT_BGR);
// 创建一个画板
gs = bufferedImage.createGraphics();
// 设置背景色
gs.setBackground(Color.white);
gs.clearRect(0, 0, len, len);
// 设定画笔的颜色
gs.setColor(Color.black);
// 创建二维的数组
boolean[][] booleans = qrcode.calQrcode(messageBytes);
// 开始正式的绘制
for (int i = 0, k = booleans.length; i < k; i++) {
for (int j = 0; j < k; j++) {
if (booleans[j][i]) {
gs.fillRect(j * 3, i * 3, 3, 3);
}
}
}
// 刷新
gs.dispose();
// 输出本地
// 创建一个文件
File file = new File("d:/img.png");
// 将图片保存到本地
ImageIO.write(bufferedImage, "png", file);
System.out.println("估计成功了");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
所依赖的jar包是:
这里分享下载地址: 点击打开链接, 密码:yxkb