使用QRCode生成和解析二维码,这个和前面的不一样,只要盗图两个jar(后面上传),即可生成二维码
直接上代码,注释都有
Qrcode qrcode=new Qrcode();
qrcode.setQrcodeErrorCorrect('M');//纠错等级
qrcode.setQrcodeEncodeMode('B');//N代表数字,A代表a-Z,B代表其他
qrcode.setQrcodeVersion(7);//版本
String qrData="www.baidu.com";
// int width=300;
// int height=300;
int width=67 + 12*(7-1);
int height=67+12*(7-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);
byte[] d=qrData.getBytes("gb2312");
int pixoff=2;//偏移量
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[i][j]){
gs.fillRect(j*3+pixoff,i*3+pixoff,3,3);
}
}
}
}
gs.dispose();
bufferedImage.flush();
ImageIO.write(bufferedImage,"png",new File("d:/img2.png"));
显示结果:
使用之前写的解析二维码的也可以解析出结果!解析结果如下:
QRCode解析二维码
File file=new File("d:/img2.png");
BufferedImage bufferedImage=ImageIO.read(file);
QRCodeDecoder qrCodeDecoder=new QRCodeDecoder();
String result=new String(qrCodeDecoder.decode(new MyQRCodeImage(bufferedImage)),"GB2312");
System.out.println("解析结果是:"+result);