java编写二维码

来源:互联网 发布:中世纪2原版优化9百科 编辑:程序博客网 时间:2024/05/16 15:08

先导入core-3.1.0.jar包和Qrcode_swetake.jar包



public class QRCodeEncoderHandler {

public void encoderQRCode(String content,String imgPath){

try {
Qrcode qrcodeHandler=new Qrcode();
//设置二维码排错率,可选L(7%),M(15%),Q(25%),H(30%),排错率越高可存储的信息量越少,但对二维码清晰度的要求越小
qrcodeHandler.setQrcodeEncodeMode('M');
//编码模式:Number数字Binary二进制Kanji汉子Alphanumber英文字母
qrcodeHandler.setQrcodeEncodeMode('B');
qrcodeHandler.setQrcodeVersion(5);

byte[] contentBytes=content.getBytes("gb2312");
BufferedImage bufImg=new BufferedImage(600, 600, BufferedImage.TYPE_INT_BGR);
Graphics2D gs=bufImg.createGraphics();
gs.setBackground(Color.WHITE);
gs.clearRect(0, 0, 600, 600);
//设定图像颜色>BLACK
gs.setColor(Color.BLACK);
//设置偏移量 不设置可能导致解析出错
int pixoff=2;
//输出内容>二维码
if(contentBytes.length>0 && contentBytes.length<800){
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*16+pixoff, i*16+pixoff, 16, 16);
}
}
}
}else{
}
gs.dispose();
bufImg.flush();
File imgFile=new File(imgPath);
//生成二维码QRCode
ImageIO.write(bufImg, "png", imgFile);

} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {

String imgPath="Q:\\"+"123"+".png";
String content="http://www.baidu.com";
QRCodeEncoderHandler handler=new QRCodeEncoderHandler();
handler.encoderQRCode(content, imgPath);
System.out.println("imgPath:"+imgPath);
}



}

原创粉丝点击