开源!一款基于Spring Boot的二维码生成和解析工具
2023-06-13 09:14:16 时间
之前闲暇时间写过的一款二维码生成和解析工具,目前基本功能已经完成并开始使用。
1 概览
设计技术点:
- Spring Boot(restful API)
- zxing
readme:
2 项目截图
2.1 体验地址
http://59.110.25.8:8080/tools/
2.2 截图
3 部分代码
枚举:
package org.ymx.sb_qr_code.enums;import lombok.Getter;/**
* @desc: 图片大小枚举
* @author: YanMingXin
* @create: 2022/6/2-20:15
**/@Getterpublic enum ImgSize {
MINI(80, 80), SMALL(120, 120), MIDDLE(200, 200), BIG(500, 500);
int width;
int height;
ImgSize(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public String toString() {
return "ImgSize{" +
"width=" + width +
", height=" + height +
'}';
}}
service层实现类
package org.ymx.sb_qr_code.service.impl;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service;import org.springframework.util.ObjectUtils;import org.ymx.sb_qr_code.service.ZXingService;import org.ymx.sb_qr_code.utils.ZXingUtil;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOException;import java.util.UUID;/**
* @desc: Service文件处理
* @author: YanMingXin
* @create: 2022/6/2-19:22
**/@Servicepublic class ZXingServiceImpl implements ZXingService {
@Value("${file.upload.path}")
private String imgPath;
@Override
public String encodeImg(String format, String content, int width, int height, String logo) {
String fileName = UUID.randomUUID() + "." + format;
String text = content;
if (ObjectUtils.isEmpty(content)) {
text = "null";
}
if (!ObjectUtils.isEmpty(logo)) {
logo = imgPath + logo;
}
String path = imgPath + fileName;
try {
ZXingUtil.encodeImg(path, format, text, width, height, logo);
} catch (Exception e) {
e.printStackTrace();
}
return fileName;
}
@Override
public String decodeImg(File file) {
String content = null;
try {
content = ZXingUtil.decodeImg(file);
} catch (Exception e) {
e.printStackTrace();
}
return content;
}}
4 获取方式
关注下方公众号【扯编程的淡】,回复【二维码】即可获取
相关文章
- 玩转 Spring Boot 集成篇(Redis)(四)
- Spring学习笔记(五)——JdbcTemplate和spring中声明式事务
- Spring学习笔记(三十七)——Flyway 数据库版本控制
- Spring读源码系列番外篇09--BeanWrapper的应用
- Spring 5(四)JdbcTemplate
- spring boot整合shiro_Spring框架介绍及使用
- Spring AOP基础运用
- Spring Boot 整合 Elastricsearch + LogStash + Kibana
- 基于Spring Task的Spring定时任务
- Spring Boot + Vue + Shiro 实现前后端分离,写得太好了!
- Spring-boot_Spring Boot
- 烧脑巨作,Spring Boot请求处理(常用参数注解使用)
- 5分钟实现系统的自动伸缩【Jenkins+Spring Boot】
- 到底要不要拥抱 Spring Boot 3.0
- spring boot 2.x 整合mybaits及分页插件
- Spring事务失效场景
- 《Spring核心技术》开篇:我要带你一步步调试Spring6.0源码啦!
- Spring Boot 源码阅读初始化环境搭建
- 只会用 Spring Boot 创建微服务?这 4 种替代方案了解一下!
- Spring Boot 2.x基础教程:配置元数据的应用
- Spring Boot的核心注解和配置(一)
- Spring Boot的数据绑定和参数传递(一)
- Spring Cloud Gateway 过滤器的分类
- 如何使用 Arthas 定位 Spring Boot 接口超时
- 小宇宙爆发!Spring Boot 新特性:节省95%内存占用
- 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事详解大数据
- Spring调度任务cronjob 精确指定任务的运行时间详解编程语言
- 什么是 Spring Boot详解编程语言
- spring Boot(十九):使用Spring Boot Actuator监控应用详解编程语言
- Spring MVC的表单标签库详解
- Nacos 2.0的Spring Boot Starter来了!
- 在 IDEA 中创建 Spring Boot 项目的方式(详细步骤教程)