扫二维码,送女朋友

巩固自身,分享别人

因为代码注释比较多,所以就不多加解释。

 
 
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

猜你喜欢

转载自blog.csdn.net/weixin_40829235/article/details/80386136
今日推荐