通过java生成读取二维码详解
程序员文章站
2024-02-22 16:20:34
前言
在开始之前,我们需要先引入二维码生成和读取的jar包,这里我用的是qrcodejar
新建一个java工程,在工程中添加一个lib目录,把两个jar包放到lib目...
前言
在开始之前,我们需要先引入二维码生成和读取的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); } }
读取二维码的内容为
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 静态页面加密