扫二维码,送女朋友

巩固自身,分享别人

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值