所用jar包:QRCode.jar
具体代码:
package QRCode;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;
public class QRCode {
public static void main(String[] args) throws IOException {
Qrcode qrcode = new Qrcode();
qrcode.setQrcodeErrorCorrect('L');//排错率 可选L(7%)、M(15%)、Q(25%)、H(30%)
qrcode.setQrcodeEncodeMode('B');//N数字 ;A a-z;B其他字符
qrcode.setQrcodeVersion(10);
//二维码中储存的信息
String qrInfo = "http://www.mail.163.com";
//二维码大小
int width=200;
int height=200;
//绘图
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
//创建画板
Graphics2D gs = bufferedImage.createGraphics();
gs.setBackground(Color.WHITE);
gs.setColor(Color.BLACK);
gs.clearRect(0, 0, width, height);//清除画板内容
int pixoff = 15;//设置偏移量
byte[] d = qrInfo.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("D:/qrcode.png"));//二维码生成位置
}
}
借鉴https://blog.youkuaiyun.com/u012453843/article/details/71512104