Java用QRCode的方式生成二维码

本例所需要的生成二维码和解析二维码两个相关Jar包的下载地址如下:
链接:http://pan.baidu.com/s/1dFlKmOD 密码:i4rv
来源:http://blog.youkuaiyun.com/u012453843/article/details/71512104
首先,新建一个Java工程,在工程中添加一个lib目录,将生成二维码和解析二维码这两个相关的Jar包放在lib目录下,添加到buildpath当中。新建一个包"com.qrcode",并在该包下新建一个CreateQRCode类,如下图所示:

CreateQRCode类代码如下:
package com.qrcode;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;

public class CreateQRCode {
	public static void main(String[] args) throws Exception {
		
		//设置生成二维码的参数信息
		Qrcode qrcode = new Qrcode();
		qrcode.setQrcodeErrorCorrect('M');	//纠错等级(分为L、M、H三个等级)
		qrcode.setQrcodeEncodeMode('B');	//N代表数字,A代表a-Z,B代表其它字符  
		qrcode.setQrcodeVersion(20);		//版本 (不同的版本,生成的二维码复杂程度不一样,版本越高,像素越高0)  
		
		//生成二维码中要存储的信息  
		String qrDate = "http://blog.youkuaiyun.com/GRAY_KEY";
		
		//设置一下二维码的像素 	(根据版本号用公式定义宽和高,否则生成的二维码可能只是占了像素的几分之一,并没有填充完)
		int width = 67 + 12*(20-1);
		int height = 67 + 12*(20-1);
		
		//创建绘图对象
		BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		//绘图
		Graphics2D gs = bufferedImage.createGraphics();
		gs.setBackground(Color.WHITE);		//设置背景色
		gs.setColor(Color.black);			//设置二维码颜色
		gs.clearRect(0, 0, width, height);		//清除下画板内容
		
		//设置下偏移量,如果不加偏移量,有时会导致出错。  
		int pixoff = 2;
		
		byte[] d = qrDate.getBytes("gb2312");
		if (d.length > 0 && d.length < 120) {
			boolean[][] s = qrcode.calQrcode(d);
			for (int i = 0; i < s.length; i++) {
				for (int j = 0; j < s.length; j++) {
					if (s[j][i]) {
						gs.fillRect(j*3+pixoff,i*3+pixoff,3,3);
					}
				}
			}
		}
		gs.dispose();
		bufferedImage.flush();
		ImageIO.write(bufferedImage,"png",new File("G:/code/qrcode.png"));	
		//"G:/code/qrcode.png" 是二维码图片的生成路径,
		//注:G盘下的code文件夹必须存在,否则运行代码时会报 FileNotFoundException(系统找不到指定的路径。)
	}
}
 运行上面的代码,运行成功后,到二维码生成的指定目录查看,其图片如下:

扫描图中二维码,即可打开到二维码中存储的网址或获得二网址维码中存储的信息
本例二维码存放的是一个网址信息,故扫描本例中的二维码,将打开到对应的网址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值