Java用QRCode的方式生成二维码

来源:互联网 发布:java开发中常见的异常 编辑:程序博客网 时间:2024/05/18 13:08
本例所需要的生成二维码和解析二维码两个相关Jar包的下载地址如下:
链接:http://pan.baidu.com/s/1dFlKmOD 密码:i4rv
来源:http://blog.csdn.net/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.csdn.net/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(系统找不到指定的路径。)}}
 运行上面的代码,运行成功后,到二维码生成的指定目录查看,其图片如下:

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