第一步, 加入pom。

         <!-- 二维码 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.0</version></dependency>

第二步,在service接口中写入二维码配置信息

     // 二维码长 , 宽 , 生成图片格式int  QR_WIDTH = 400;int  QR_HEIGH = 400;String QR_FORMAT = "PNG";String URL = "https://xxxxxxxxxx/miniprogram/?pile_id=";//获取二维码流OutputStream getQRcode(String tcomid) throws Exception;//获取二维码base64String getQRcodeBase64(String tcomid) throws Exception;

第三步,在serviceImpl中实现service中的接口。

    //获取二维码流@Overridepublic OutputStream getQRcode(String tcomid) throws Exception {QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix bitMatrix = qrCodeWriter.encode(URL + tcomid, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGH);ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();MatrixToImageWriter.writeToStream(bitMatrix, QR_FORMAT, pngOutputStream);return pngOutputStream;}//获取base64格式的二维码@Overridepublic String getQRcodeBase64(String tcomid) throws Exception {QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix bitMatrix = qrCodeWriter.encode(URL + tcomid, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGH);Path path = Paths.get("./", QR_FORMAT);MatrixToImageWriter.writeToPath(bitMatrix, QR_FORMAT, path);File file = path.toFile();ByteArrayOutputStream bos = new ByteArrayOutputStream();FileInputStream inputFile = new FileInputStream(file);byte[] buffer = new byte[(int) file.length()];int n;while ((n = inputFile.read(buffer)) != -1) {bos.write(buffer, 0, n);}buffer = bos.toByteArray();String imageBase64 = Base64.getEncoder().encodeToString(buffer);inputFile.close();if (file.exists()) {file.deleteOnExit();}return imageBase64;}

第四步,在Controller层中写接口。

    //获取二维码接口 返回base64格式@GetMapping(value = "/QRcode")public ResponseResult QRcode(@RequestParam(required = false) Map<String, Object> paraMap , HttpServletResponse response){String pile_id = paraMap.get("pile_id").toString();//此处的查询可以根据具体情况修改PileCharge pileCharge = service.queryById(pile_id);if(pileCharge == null){return ResponseResult.ok(I18nUtil.getMessageDefault("pileCharge.noHas", "充电桩不存在"));}String qr = null;try {qr = service.getQRcodeBase64(pileCharge.getTcomid());}catch (Exception e) {return ResponseResult.ok(I18nUtil.getMessageDefault("QR.generate.fail", "二维码生成失败,请稍后重试"));}Map<String , Object> map = new HashMap();map.put("QRpng" , qr);return ResponseResult.ok(map);}

二维码生成 base64格式 Java相关推荐

  1. SpringBoot 二维码生成base64并上传OSS

    SpringBoot 二维码生成base64并上传OSS 基础环境 SpringBoot.Maven 代码实现 1.添加依赖 <!--二维码生成 --> <dependency> ...

  2. 带参数的公众号二维码 生成+后台拦截java

    获取公众号的二维码的ticket 我是用的永久的二维码获取方式 这里的scene_id不能重复,生成的二维码才不一样 public String getGZHCodeByPubKey(String s ...

  3. 二维码生成代码(Java)

    1 使用Goole的类库,下载地址http://pan.baidu.com/s/1jGy7D5s import java.awt.Color; import java.awt.Graphics2D; ...

  4. java生成二维码到文件,java生成二维码转成BASE64

    java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...

  5. java 二维码生成和加密base64压码

    因为项目中要实现扫描二维码并实现登录,但本人开发的模块是服务器,跟前台传输用到的主要是json对象.所以不能直接传输图片,必须把图片加密成base64压码的形式. 首先介绍二维码生成的代码,二维码生成 ...

  6. Java常见应用——Json,二维码生成,加密解密应用

    Java常见应用--Json,二维码生成,加密解密应用 一.JSON 1.下载json架包,json官网:json.org 2.将Map/JavaBean/String转化成json对象,只需要使用J ...

  7. java 二维码生成和解析

    2019独角兽企业重金招聘Python工程师标准>>> <!-- 二维码 --><dependency><groupId>com.google.z ...

  8. Java 快速开发二维码生成服务

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 不知道从什么 ...

  9. java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例

    java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍  这里我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream o ...

最新文章

  1. ip映射后 前端无法调用接口_基于S7300400 CPU集成PN接口的Modbus TCPW
  2. nginx模块学习六 add_header 跨域访问
  3. ie里的button标签的一个bug
  4. fgetc(),getc(),getchar()的用法
  5. 力扣26--删除有序数组中的重复项
  6. 关于技术的学习及批判
  7. 自作孽!知网终于被查了,涉嫌垄断,背后到底是何方神圣?
  8. 用优盘装系统看不到计算机本身的硬盘,电脑u盘重装系统找不到硬盘的3大解决方法...
  9. 浅谈IM(InstantMessaging) 即时通讯/实时传讯
  10. Visual Prompt Tuning (VPT)
  11. ConditionalOnMissingBean失效问题追踪
  12. MyCAT XA分布式事务
  13. 解决el-table固定列在ios系统出现的问题
  14. “五小”成果技术报告 野外小队信息管理系统Ver1.00
  15. 明万历年间抗击倭寇援朝战役
  16. Proteus 8 Professional 仿真软件安装包和汉化
  17. 幅频特性曲线protues_讲proteus实验一RC低通滤波器频率及非线性元件特性要点详解.ppt...
  18. 学习成长之路 (初章 三个月建成微信 小程序商城、ArcEngine C# GIS开发入门)
  19. Chromium-Dev中一些英文缩写
  20. 一个android控件资源网站

热门文章

  1. implements和extends的区别
  2. 换主板驱动改良红外连接
  3. 实验室考核复习(三)----运放基础
  4. 年薪33-48万澳元起|澳门大学智慧城市物联网实验室招博后研究员
  5. 微软版我的世界服务器推荐,平台化的网易《我的世界》中国版,可能是新玩家目前的最佳选择...
  6. C++使用技巧(二十四):回顾vector用法及多维数组使用
  7. 美德乐吸奶器怎么样-
  8. Web应用中wen.xml文件配置
  9. 用 X3D 替代 VRML 2.0 的理由
  10. 2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声...