QRCode生成二维码

来源:互联网 发布:淘宝手机首页素材 编辑:程序博客网 时间:2024/06/07 16:48
/* * 生成二维码(QRCode)图片 
* @param content 
* @param imgPath */


public static String encoderQRCode(String content) {   
String imgPath="E:\\QRCodeTest\\"+DateUtil.getStrTime()+".png";
try {   
Qrcode qrcodeHandler = new Qrcode();   
qrcodeHandler.setQrcodeErrorCorrect('M');   
qrcodeHandler.setQrcodeEncodeMode('B');   
qrcodeHandler.setQrcodeVersion(7);   


System.out.println(content);   
//byte[] contentBytes = content.getBytes("gb2312");   
byte[] contentBytes = content.getBytes("utf-8");   
BufferedImage bufImg = new BufferedImage(140, 140,   
BufferedImage.TYPE_INT_RGB);   


Graphics2D gs = bufImg.createGraphics();   
gs.setBackground(Color.WHITE);   
gs.clearRect(0, 0, 140, 140);   


// 设定图像颜色> BLACK   
gs.setColor(Color.BLACK);   


// 设置偏移量 不设置可能导致解析出错   
int pixoff = 2;   
// 输出内容> 二维码   


if (contentBytes.length > 0 && contentBytes.length < 120) {   
boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);   
for (int i = 0; i < codeOut.length; i++) {   
for (int j = 0; j < codeOut.length; j++) {   
if (codeOut[j][i]) {   
gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);   
}   
}   
}   
} else {   
System.err.println("QRCode content bytes length = "   
                       + contentBytes.length + " not in [ 0,120 ]. ");   
}   


gs.dispose();   
bufImg.flush();   
File imgFile = new File(imgPath);   
// 生成二维码QRCode图片   
ImageIO.write(bufImg, "jpg", imgFile);   


} catch (Exception e) {   
e.printStackTrace();   
}
return imgPath;   
}   
0 0
原创粉丝点击