文章目录

  • SpringCloud 生成二维码技术
    • 1)引入依赖
    • 2)编写生成二维码方法
    • 3)测试方法

SpringCloud 生成二维码技术

ZXing是一个开源的,用Java编写的多格式的1D / 2D条码图像处理库,使用ZXing可以生成、识别QR Code(二维 码)。常用的二维码处理库还有zbar,近几年已经不再更新代码,下边介绍ZXing生成二维码的方法。

1)引入依赖

引入依赖 程pom.xml中添加依赖

<!-- 二维码生成&识别组件 -->
<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version>
</dependency>
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version>
</dependency>

2)编写生成二维码方法

编写生成二维码方法:

/*** 生成二维码* @param content 二维码对应的URL* @param width 二维码图片宽度* @param height 二维码图片高度* @return*/
public String createQRCode(String content, int width, int height) throws IOException {String resultImage = "";//除了尺寸,传入内容不能为空if (!StringUtils.isEmpty(content)) {ServletOutputStream stream = null;ByteArrayOutputStream os = new ByteArrayOutputStream();//二维码参数@SuppressWarnings("rawtypes")HashMap<EncodeHintType, Comparable> hints = new HashMap<>();//指定字符编码为“utf-8”hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//L M Q H四个纠错等级从低到高,指定二维码的纠错等级为M//纠错级别越高,可以修正的错误就越多,需要的纠错码的数量也变多,相应的二维吗可储存的数据就会减少hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);//设置图片的边距hints.put(EncodeHintType.MARGIN, 1);try {//zxing生成二维码核心类QRCodeWriter writer = new QRCodeWriter();//把输入文本按照指定规则转成二维吗BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);//生成二维码图片流BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);//输出流ImageIO.write(bufferedImage, "png", os);/*** 原生转码前面没有 data:image/png;base64 这些字段,返回给前端是无法被解析,所以加上前缀*/resultImage = new String("data:image/png;base64," + EncryptUtil.encodeBase64(os.toByteArray()));return resultImage;} catch (Exception e) {e.printStackTrace();throw new BusinessException(CommonErrorCode.E_200007);} finally {if (stream != null) {stream.flush();stream.close();}}}return null;
}

3)测试方法

测试根据内容生成二维码方法,在QRCodeUtil中添加main方法如下:

public static void main(String[] args) throws IOException {QRCodeUtil qrCodeUtil = new QRCodeUtil();String qrCode = qrCodeUtil.createQRCode("https://yangyongli.blog.csdn.net/", 200, 200);System.out.println(qrCode);
}

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAABYUlEQVR42u2YTY7DIAyFnRXH4KaE3JRjsArj90yTNtJsRiPxFrWqlPJtHP+7Nn4T+5I/km4u22hm+RijplFxkTVIdhX97vBDz/70My41SKW+p+WaWvFzt02LNDfqHm8gR2hRcC0Smnr0nYzBRxwsJcySiEF+HvmzkrzEHV7MwuGfdWcd6flMbevG/MC5JCHirsYvQGh9RLpIEOjrHt69MCfUZq8xloYE8S5hNGSoDKOib0iQt8yA7h2drViWIP6d2s6qbJT9yp/1ZERhdidvkcf0uQah/eLZowQyaSSI9396ONG0HRY9lUgk8QbrmqVZXdaTPg3pmsYgUNByNUjYj7NJZbq4q1UIWwS0RjyOe0hRICEoeLAoOBNagswth12i301Dg9xTZ6XK8QYipL72QqYLR86POX414ZwSjkfXTUOIcKseMxIfu9lKcm3Vl+7vkbiUzC0ntmpOTzLk+3/V/5IfFMYD61zrLUAAAAAASUVORK5CYII=

使用手机扫描二维码,即可自动打开我的博客首页

SpringCloud 生成二维码技术相关推荐

  1. java生成二维码技术实现

    一.maven依赖 下载google的二维码工具包来进行二维码的生成,下面是jar包的maven下载 <dependency><groupId>com.google.zxing ...

  2. iOS 生成二维码/条形码

    级别:★★☆☆☆ 标签:「iOS CIFilter」「CIQRCodeGenerator」「CICode128BarcodeGenerator」「二维码加logo」 作者: Xs·H 审校: QiSh ...

  3. Zxing生成二维码思路和源码解析

    Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...

  4. vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴

    近日,重构项目某一老模块时,有一个功能是生成二维码并下载,还可以复制链接.列表每项都有二维码.下载二维码和复制链接和列表上方总的二维码. 老模块是用的qrocode中文文档,qrcode github ...

  5. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  6. 2022年了我才发现Chrome原来可以直接生成二维码...

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 有时候要为某个网页生成二维码,我经常是去百度搜索:二维码生成器.然后下面选择一个看得上眼的去使用,比如我比较常用的是:草料二维码生成器.注 ...

  7. 微信小程序之生成二维码

    首先先扯一些题外话,本人是java行业的小白,因为是改行做的java,之前的工作就不提了. 之前写过几篇随便,刚看了下,觉得比较low,就都删了,所以也算是进入java行业的第一篇随笔,如果有表述上或 ...

  8. java生成二维码/java解析二维码

    二维码的优缺点 优点:1. 高密度编码,信息容量大:2.编码范围广:3.容错能力强:4.译码可靠性高:5.可引入加密措施:6.成本低,易制作,持久耐用. 缺点:1.二维码技术成为手机病毒.钓鱼网站传播 ...

  9. 用ABAP 生成二维码 QR Code

    除了使用我的这篇blogStep by step to create QRCode in ABAP Webdynpro提到的使用ABAP webdynpro生成二维码之外,也可以通过使用二维码在线生成 ...

最新文章

  1. python-数据类型之列表
  2. C语言字符串做函数参数
  3. Nginx的几个常用配置和技巧
  4. 【HTTP 2】简介(Introduction)
  5. oppo售后解锁恢复工具.zip_OPPO手机4个不为人知的小技巧,全知道的竟然不到1%,令人唏嘘...
  6. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.2 内存...
  7. 使用Eclipse创建一个Android程序方法
  8. (王道408考研操作系统)第四章文件管理-第二节2:磁盘调度算法
  9. Asp.Net大型项目实践系列导航 [以后要仔细看的,支持作者 转]
  10. MapReduce源码刨析
  11. 多级队列调度算法可视化界面_多级反馈队列调度算法
  12. 基于bootstrap,个人简历网页模板,响应式布局
  13. java软件工程师 英文简历_java工程师英文简历范文
  14. 企鹅杏仁集团完成2.5亿美元融资,投后估值超过10亿美元...
  15. android 课程大纲,Android课程大纲解读.doc
  16. 开发人员为什么要选择APL(抽象编程语言)平台?
  17. 基于Jetson NX的模型部署
  18. python数据结构与算法练习-Printer Queue
  19. LG OnScreen Control 软件提示‘镜像显示器‘ BUG
  20. springboot日结工管理小程序毕业设计-附源码070940

热门文章

  1. android 自定义通知不显示,Android notification设置的图标不显示
  2. 企业微信会话存档-一个文件下载,吹牛2小时完成,结果写了2星期?
  3. android h xh xxh 分辨率,android vector入门
  4. 使用Python+OpenCV进行实时车道检测
  5. 如何使用Python进行Excel表格的处理,表的整合、内容的调整、定位更新等等
  6. JSTL : 标签库详解
  7. 程序设计——图书管理系统(附源代码)
  8. Python入门程序【十二】
  9. Java包名与包路径
  10. 轨迹栏作为调色板 | 九