Java后端如何生成二维码

ops/2024/9/23 22:41:50/

为节约服务器资源,一般情况下,不要直接生成海量二维码

可以考虑,前缀字符,自定义规则生成二维码

支持自定义二维码大小、二维码logo、颜色等等

前端生成二维码

详见前端开发手册

附件:代码文件下载

​​https://caiyun.139.com/m/i?135CmpZ2OwqB7​​

演示

代码

package com.pusdn.test;import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.pusdn.PgzApplication;
import com.pusdn.common.config.PgzConfig;
import com.pusdn.common.utils.file.FileUploadUtils;
import com.pusdn.common.utils.spring.SpringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.awt.*;@SpringBootTest(classes = PgzApplication.class)
public class QRCodeTest {@Testpublic void testQr() {String content = "https://pusdn-dev.feishu.cn/wiki/Q3ZpwiZXWiXLpwkv8JZcF0Nwngf?from=from_copylink";String logoPath = "/Users/janeyork/PUSDN/Work/XCN/pgz--gf-op-xcn/pgz-sbv-gf-admin/src/test/java/com/pusdn/test/temp.png";// 绝对路经// 推荐路经String qrPath = FileUploadUtils.getDefaultBaseDir() + "/qrcode/";// 或者  String qrPath = System.getProperty("user.home") + "/pusdn/" + "你的路经/";// 生成指定url对应的二维码到文件,宽和高都是300像素QrCodeUtil.generate(content, 300, 300, FileUtil.file(qrPath + "xxx.jpg"));QrCodeUtil.generate(content,QrConfig.create().setImg(logoPath), //附带logoFileUtil.file(qrPath + "xxx2.jpg"));QrConfig qrConfig = QrConfig.create().setForeColor(Color.BLUE).setBackColor(Color.MAGENTA).setWidth(0).setHeight(0).setMargin(1);String asciiArt = QrCodeUtil.generateAsAsciiArt("https://baidu.cn/",qrConfig);System.out.println(asciiArt);}
}

http://www.ppmy.cn/ops/24921.html

相关文章

leetcode LCR095. 最长公共子序列

1. 题意 给定两个串 s t s\ t s t,求最长公共子序列长度。 2. 题解 2.1 动态规划 写出状态转移方程 d p [ i ] [ j ] { d p [ i − 1 ] [ j − 1 ] 1 , s [ i − 1 ] t [ j − 1 ] max ⁡ ( d p [ i − 1 ] [ j ] , d p [ i ] [ j − 1 ] ) , s [ i − 1 ] ≠ t [ j −…

numpy+matplotlib绘制玫瑰线图案

【第10次课]实验十一数据可视化及应用】 声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1.简答题 本实验绘制简单图形,要导入numpy库函数和matplotlib.pyplot子库函数: import matplotlib.pyplot as plt impor…

​HTTP与HTTPS:网络通信的安全卫士

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 ✨✨ 帅哥美女们,我们共同加油!一起进步&am…

密文域可逆信息隐藏技术综述(上)

加密图像可逆信息隐藏是一种加密原始图像后,在密文图像中可逆地隐藏附加数据,并且在数据提取后,原始图像可以被无损重建的技术。RDH-EI的分类如图1所示。 按对图像的加密方法,现有RDH-EI算法可分为对称加密域和非对称(公钥)加密域…

论文解读-面向高效生成大语言模型服务:从算法到系统综述

一、简要介绍 在快速发展的人工智能(AI)领域中,生成式大型语言模型(llm)站在了最前沿,彻底改变了论文与数据交互的方式。然而,部署这些模型的计算强度和内存消耗在服务效率方面带来了重大挑战&a…

多线程同步

1.多线程并发 1).多线程并发引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } in…

ChatGPT: 人工智能对话的革命

介绍: 在人工智能领域&#xff0c;ChatGPT被视为创新的典范&#xff0c;重新定义了我们与技术交互的方式。从回答查询到生成创意内容&#xff0c;ChatGPT利用语言的力量促进了无缝沟通。在这篇全面指南中&#xff0c;我们深入探讨ChatGPT的复杂性&#xff0c;探索其功能、应用…

vue3【实用教程】声明响应式状态(含ref,reactive,toRef(),toRefs() 等)

Vue 3 中的数据基于 JavaScript Proxy (代理) 实现响应式 ( vue2 中的数据通过 Object.defineProperty() 方法和对数组变异方法的重写&#xff0c;实现响应式) 选项式 API 用 data 选项声明响应式状态&#xff0c;值为返回一个对象的函数。 在创建组件实例的时候会调用此函数函…