当前位置: 移动技术网 > IT编程>开发语言>Java > 通过java生成读取二维码详解

通过java生成读取二维码详解

2019年07月19日  | 移动技术网IT编程  | 我要评论

前言

在开始之前,我们需要先引入二维码生成和读取的jar包,这里我用的是qrcodejar

新建一个java工程,在工程中添加一个lib目录,把两个jar包放到lib目录下,不要忘了add as libiary

在build.gradle中添加配置
compile filetree(dir:'lib',include:['*.jar'])
(这里我用的是gradle)

准备工作结束,马上开始

生成二维码

public class qrcodetest {
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(10);//版本
//生成二维码中要存储的信息
string qrdata ="http://www.baidu.com";
//设置一下二维码的像素
int width = 67+12*(10-1);
int height = 67+12*(10-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 = qrdata.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("e:/code/qrcodebd.png"));
}
}

这样就可以生成一张二维码图片,扫描二维码,会跳转到百度首页。

二维码图片

public class myqrcodeimage implements qrcodeimage {
bufferedimage bufferedimage;
public myqrcodeimage(bufferedimage bufferedimage) {
this.bufferedimage = bufferedimage;
}
public int getheight() {
return bufferedimage.getheight();
}
public int getpixel(int arg0, int arg1) {
return bufferedimage.getrgb(arg0, arg1);
}
public int getwidth() {
return bufferedimage.getwidth();
}

}

读取二维码

public class readqrcode {
public static void main(string[] args) throws ioexception {
file file = new file("e:/code/qrcodebd.png");
bufferedimage bufferedimage = imageio.read(file);
qrcode qrcode = new qrcode();
qrcodedecoder codedecoder = new qrcodedecoder();
string result = new string(codedecoder.decode(new myqrcodeimage(bufferedimage)),"gb2312");
system.out.println(result);
}
}

读取二维码的内容为

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网