Java 生成二维码
发布日期:2021-10-12 20:07:53
浏览次数:11
分类:技术文章
本文共 2916 字,大约阅读时间需要 9 分钟。
参考所得
第一步: 下载两个jar包:qrcode.jar和qrcode_swetake.jar
链接:https://pan.baidu.com/s/1RdW7cWz9-mErx13T-QxnHg
提取码:e44a第二步: 二维码生成代码编写
1》、
package com.zhao.controller;import com.zhao.util.CreateQRCode;public class 二维码 { public static void main(String[] args) { String data = "同志,我想盘你!!!!!!!!!!!!!!!"; /** * 生成二维码 */ CreateQRCode.encode(data, "C:/Users/acer/Desktop/二维码/hehe.JPG"); /** * 解析二维码 */ //CreateQRCode.decode("D:/test/微信公众账号.JPG"); } }
工具类CreateQRCode .java
package com.zhao.util;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;public class CreateQRCode { //生成二维码 public static boolean encode(String srcValue, String qrcodePicfilePath){ int MAX_DATA_LENGTH = 200; byte[] d = srcValue.getBytes(); int dataLength = d.length; int imageWidth = 113; int imageHeight = imageWidth; BufferedImage bi = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, imageWidth, imageHeight); g.setColor(Color.BLACK); if (dataLength > 0 && dataLength <= MAX_DATA_LENGTH) { Qrcode qrcode = new Qrcode(); qrcode.setQrcodeErrorCorrect('M'); qrcode.setQrcodeEncodeMode('B'); qrcode.setQrcodeVersion(5); boolean[][] b = qrcode.calQrcode(d); int qrcodeDataLen = b.length; for (int i = 0; i < qrcodeDataLen; i++) { for (int j = 0; j < qrcodeDataLen; j++) { if (b[j][i]) { g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3); } } } System.out.println("二维码成功生成!!"); } else { System.out.println( dataLength +"大于"+ MAX_DATA_LENGTH); return false; } g.dispose(); bi.flush(); File f = new File(qrcodePicfilePath); String suffix = f.getName().substring(f.getName().indexOf(".")+1, f.getName().length()); System.out.println("二维码输出成功!!"); try { ImageIO.write(bi, suffix, f); } catch (IOException ioe) { System.out.println("二维码生成失败" + ioe.getMessage()); return false; } return true; } //解析二维码/* public static String decode(String qrcodePicfilePath) { System.out.println("开始解析二维码!!"); 读取二维码图像数据 File imageFile = new File(qrcodePicfilePath); BufferedImage image = null; try { image = ImageIO.read(imageFile); } catch (IOException e) { System.out.println("读取二维码图片失败: " + e.getMessage()); return null; } 解二维码 QRCodeDecoder decoder = new QRCodeDecoder(); String decodedData = new String(decoder.decode(new QRCodeImage(image))); System.out.println("解析内容如下:"+decodedData); return decodedData; } */ }
第三步:执行main函数 结果如下图
生成二维码结果如下图
扫二维码得结果如下:
到此over。解析二维码代码自己琢磨。
转载地址:https://blog.csdn.net/qq_39772439/article/details/88995218 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月25日 05时13分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【C++】算法集锦(12):高楼扔鸡蛋
2019-04-27
【图解】拥塞控制
2019-04-27
线程上下文切换
2019-04-27
什么是服务熔断?
2019-04-27
服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能
2019-04-27
C++面经总结之《Effective C++》(一)
2019-04-27
C++面经总结之《Effective C++》(二)
2019-04-27
这是什么“虎狼之词”啊!!!程序员的健康问题,看一线老中医怎么说!!!
2019-04-27
打开我的收藏夹 -- Python数据分析杂谈
2019-04-27
上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
2019-04-27
上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据
2019-04-27
上手Pandas,带你玩转数据(3)-- pandas数据存入文件
2019-04-27
爬虫遇上不让右击、不让F12的网站,该怎么办?
2019-04-27
上手Pandas,带你玩转数据(4)-- 数据清洗
2019-04-27
上手Pandas,带你玩转数据(5)-- 数据转换与数据定位
2019-04-27
上手Pandas,带你玩转数据(6)-- 摆脱对pandas可视化丑图的刻板印象吧
2019-04-27
linux shell — 6.初识 EXT2 文件系统
2019-04-27