欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-22 16:20:34
前言 在开始之前,我们需要先引入二维码生成和读取的jar包,这里我用的是qrcodejar 新建一个java工程,在工程中添加一个lib目录,把两个jar包放到lib目...

前言

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

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

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

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

在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);
}
}

读取二维码的内容为

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

上一篇: 静态页面加密

下一篇: