二维码生成 base64格式 Java
第一步, 加入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相关推荐
- SpringBoot 二维码生成base64并上传OSS
SpringBoot 二维码生成base64并上传OSS 基础环境 SpringBoot.Maven 代码实现 1.添加依赖 <!--二维码生成 --> <dependency> ...
- 带参数的公众号二维码 生成+后台拦截java
获取公众号的二维码的ticket 我是用的永久的二维码获取方式 这里的scene_id不能重复,生成的二维码才不一样 public String getGZHCodeByPubKey(String s ...
- 二维码生成代码(Java)
1 使用Goole的类库,下载地址http://pan.baidu.com/s/1jGy7D5s import java.awt.Color; import java.awt.Graphics2D; ...
- java生成二维码到文件,java生成二维码转成BASE64
java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...
- java 二维码生成和加密base64压码
因为项目中要实现扫描二维码并实现登录,但本人开发的模块是服务器,跟前台传输用到的主要是json对象.所以不能直接传输图片,必须把图片加密成base64压码的形式. 首先介绍二维码生成的代码,二维码生成 ...
- Java常见应用——Json,二维码生成,加密解密应用
Java常见应用--Json,二维码生成,加密解密应用 一.JSON 1.下载json架包,json官网:json.org 2.将Map/JavaBean/String转化成json对象,只需要使用J ...
- java 二维码生成和解析
2019独角兽企业重金招聘Python工程师标准>>> <!-- 二维码 --><dependency><groupId>com.google.z ...
- Java 快速开发二维码生成服务
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 不知道从什么 ...
- java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍 这里我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream o ...
最新文章
- ip映射后 前端无法调用接口_基于S7300400 CPU集成PN接口的Modbus TCPW
- nginx模块学习六 add_header 跨域访问
- ie里的button标签的一个bug
- fgetc(),getc(),getchar()的用法
- 力扣26--删除有序数组中的重复项
- 关于技术的学习及批判
- 自作孽!知网终于被查了,涉嫌垄断,背后到底是何方神圣?
- 用优盘装系统看不到计算机本身的硬盘,电脑u盘重装系统找不到硬盘的3大解决方法...
- 浅谈IM(InstantMessaging) 即时通讯/实时传讯
- Visual Prompt Tuning (VPT)
- ConditionalOnMissingBean失效问题追踪
- MyCAT XA分布式事务
- 解决el-table固定列在ios系统出现的问题
- “五小”成果技术报告 野外小队信息管理系统Ver1.00
- 明万历年间抗击倭寇援朝战役
- Proteus 8 Professional 仿真软件安装包和汉化
- 幅频特性曲线protues_讲proteus实验一RC低通滤波器频率及非线性元件特性要点详解.ppt...
- 学习成长之路 (初章 三个月建成微信 小程序商城、ArcEngine C# GIS开发入门)
- Chromium-Dev中一些英文缩写
- 一个android控件资源网站
热门文章
- implements和extends的区别
- 换主板驱动改良红外连接
- 实验室考核复习(三)----运放基础
- 年薪33-48万澳元起|澳门大学智慧城市物联网实验室招博后研究员
- 微软版我的世界服务器推荐,平台化的网易《我的世界》中国版,可能是新玩家目前的最佳选择...
- C++使用技巧(二十四):回顾vector用法及多维数组使用
- 美德乐吸奶器怎么样-
- Web应用中wen.xml文件配置
- 用 X3D 替代 VRML 2.0 的理由
- 2021年全球公有云终端用户支出将增长18% ;EMNLP 2020最佳论文:无声语音的数字发声...