1、由来:

由于现在对二维码的使用比较多,正好我在项目里面也使用到了,所以写篇博客记录一下。

2、引入依赖:

<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version>
</dependency>

3、生成二维码

这里我是将我博客主页的url生成二维码,微信扫一扫可以看到我的博客主页(欢迎骚扰)

QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", 300, 300, FileUtil.file("D:\\QRCode\\qrcode.jpg"));

4、带参数的

4.1、设置参数

上面这个只是简单的生成二维码,接下来说说自定义参数的方式生成,如长、宽、二维码的颜色、背景颜色、边距等参数,下面是代码和效果图:

QrConfig config = new QrConfig(300, 300);// 设置边距,既二维码和背景之间的边距config.setMargin(3);// 设置前景色,既二维码颜色(青色)config.setForeColor(Color.CYAN.getRGB());// 设置背景色(灰色)config.setBackColor(Color.GRAY.getRGB());// 生成二维码到文件,也可以到流QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", config, FileUtil.file("D:/qrcode.jpg"));

4.2、附带logo小图标

QrCodeUtil.generate(//"https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", //二维码内容QrConfig.create().setImg("C:\\Users\\jlz\\Pictures\\Camera Roll\\zy.jpg"), //附带logoFileUtil.file("D:\\excel\\QRCode\\qrcode.jpg")//写出到的文件);

4.3、调整纠错级别

很多时候,二维码无法识别,这时就要调整纠错级别。纠错级别使用zxing的ErrorCorrectionLevel枚举封装,包括:L、M、Q、H几个参数,由低到高。低级别的像素块更大,可以远距离识别,但是遮挡就会造成无法识别。高级别则相反,像素块小,允许遮挡一定范围,但是像素块更密集。

    QrConfig config = new QrConfig();// 高纠错级别config.setErrorCorrection(ErrorCorrectionLevel.H);QrCodeUtil.generate("https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343", config, FileUtil.file("D:\\excel\\QRCode\\qrcode1.jpg"));

5、识别二维码

String decode = QrCodeUtil.decode(FileUtil.file("D:\\excel\\QRCode\\qrcode.jpg"));

6、实际可用

在项目中我还加了生成二维码名称,是根据日期和时间生成的唯一名称,这就解决了名称可能重复的问题,下面是完整代码:

package com.yang.zhang.QrCode;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Value;import java.io.File;
import java.util.Date;/*** 二维码生成** @Author zhangzhongqing* @Date 2022/12/14 13:56*/
@RestController
@RequestMapping("/qrCode")
@Api(tags = "二维码生成")
public class QrCode {@Value("${file.local.filePath}")private String filePath;@PostMapping("/qrCode1")@ApiOperation(value="二维码生成")public void QrCode() {//二维码里面的信息String message = "https://blog.csdn.net/liulangzhezhang?spm=1000.2115.3001.5343" ;// 生成二维码String picUrl = generateQRCode(message);System.out.println(picUrl);}// 生成二维码并返回地址  message二维码中内容,name文件名private String generateQRCode(String message) {String newFilePath = getUploadFilePath(".jpg");String localPath = filePath + "/" + "QRCode" + "/" + newFilePath;File newFile = new File(localPath);if (!newFile.getParentFile().exists()) {newFile.getParentFile().mkdirs();}// 生成二维码QrCodeUtil.generate(message, 300, 300, FileUtil.file(localPath));return "/files" + newFilePath;}// 生成文件的路径和文件名  如 jpg/2022-05-20/14_50_39_1.jpgprivate String getUploadFilePath(String suffix) {Date nowDate = new Date();String dateStr = DateUtil.formatDate(nowDate);String timeStr = DateUtil.format(nowDate, "HH_mm_ss");String newFilePath ="/" + dateStr + "/" + timeStr + suffix;return newFilePath;}
}

7、总结

这就是简单的生成二维码的方法,欢迎讨论与指正!!!

java实现二维码生成功能相关推荐

  1. Java实现二维码生成

    title: Java实现二维码生成 categories: "Java" 前言 日前生活上存在很多扫描二维码的场景,支付.加好友-等操作都需要扫描二维码,然后我就在想Java能不 ...

  2. java实现二维码生成的几个方法

    java实现二维码生成的几个方法 分类: J2EE2013-06-13 20:32 10390人阅读 评论(1) 收藏 举报 1: 使用SwetakeQRCode在Java项目中生成二维码  http ...

  3. chroom浏览器网页二维码生成功能的方法

    谷歌浏览器二维码生成功能 在没有二维码的时候,我们如果要将电脑网页端的内容分享到移动端时,通常会复制内容,然后在粘贴到第三方通讯工具(微信.QQ)上发送给手机 其实早在Chrome85桌面端就上线网页 ...

  4. Java实现二维码生成 Google-Zxing

    本篇文章将介绍java中如何生成二维码,二维码的展示主要包括两各方面:1.直接生成图片(直接生成图片不需要web程序,maven工程即可) 2.将二维码转为字节数组,然后在web页面显示.web项目的 ...

  5. Java实现二维码生成与识别

    java实现QRCODE二维码的编码与解码实例 众所周知,爪哇,是一种神奇的编程语言,用JAVA 实现某一个功能,只是随便上网找一些对应的实现JAR包即可,于是,有了像JAR114这样专门提供给 爪哇 ...

  6. Java:二维码生成工具类

    java 二维码生成工具类 需要引入的maven <!--Java 生成二维码 --> <dependency><groupId>com.google.zxing& ...

  7. JAVA实现二维码生成加背景图

    应用场景:比如制作海报.宣传图时需要添加扫码关注的二维码 先上效果图 ( ≧▽≦ ) POM.XML <!-- 二维码生成 --><!-- https://mvnrepository ...

  8. java实现二维码生成及调用打印机打印

    在开发二维码打印的过程中走过几次弯路,所以在这里特意将其记录下来留作备忘.一开始参考其他博主写的文章,有介绍通过编写JAVA后台代码来获取本地默认打印机的驱动实现打印.BUT!这样就导致在本地开发测试 ...

  9. 【Java】二维码生成,QRcode

    QRcode jar包下载地址:http://swetake.com/qrcode/java/qr_java.html 解析的工具可以参考 zxing 代码如下 package erweima; im ...

最新文章

  1. Hibernate 二级缓存使用
  2. hdu 5045 费用流
  3. 科大星云诗社动态20210315
  4. C# - Span 全面介绍:探索 .NET 新增的重要组成部分
  5. 【AVR ASF4库函数学习笔记】一、使用Microchip Studio图形化配置工程
  6. 数据库加一列,cursor:pointer
  7. 【opencv学习】【轮廓检测】
  8. ms sql 带自增列 带外键约束 数据导入导出
  9. caffe.proto源码分析
  10. POJ3420 Quad Tiling【矩阵快速幂】
  11. LAMP+Redis详解(一)——基本原理
  12. 使用Spring Security安全控制
  13. win10自动更新系统导致 点击睡眠之后直接关机
  14. 计算机二级access宝典app,计算机二级宝典精简版
  15. 单元测试之moles
  16. 规范使用计算机的ppt,2016年职称计算机PowerPoint操作练习题
  17. [美国签证]准备材料及面签过程
  18. 动手的乐趣_1969功率放大器
  19. Carrot保卫萝卜
  20. 忘记电子商务吧,很快一切都将与元宇宙有关

热门文章

  1. visio跨职能流程图带区背景及大小及改变格式 (转)
  2. 不要成为反DDoS攻击的局外人
  3. 零基础用Unity制作你的第一个游戏(1)
  4. java里用idea是什么意思_idea什么意思?啥意思?idea简介
  5. 大连本周气温明显回落 阴云来降温 春雨润万物
  6. 前端 115道 面试题总结【持续更新...】
  7. 大数据 搜索 ES 一
  8. StringBuilder和输入输出
  9. 安装mingw-w64失败解决方法
  10. 2011, 完全用 GNU/Linux 工作