这篇文章给大家介绍java中怎么生成并读取二维码,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
新建一个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); } }
关于java中怎么生成并读取二维码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。