hutool的QrCodeUtilgenerate生成的二维码要带有底部文字
可以使用QrCodeUtil.generateWithLogo方法生成带有底部文字的二维码。具体实现如下:
// 导入相关的类
import cn.hutool.core.util.QrCodeUtil;
import cn.hutool.core.util.ImageUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.img.GraphicsUtil;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
// 生成带有底部文字的二维码
public class QrCodeUtilExample {
public static void main(String[] args) {
// 二维码内容
String content = "https://example.com";
// 二维码图片路径
String imagePath = "D:/qrcode.png";
// 底部文字
String bottomText = "底部文字";
// 生成二维码图片
BufferedImage image = QrCodeUtil.generate(content, 300, 300);
// 创建底部文字图片
BufferedImage bottomTextImage = createBottomTextImage(bottomText, image.getWidth(), 50);
// 合并二维码图片和底部文字图片
BufferedImage finalImage = ImageUtil.newBlank(image.getWidth(), image.getHeight() + bottomTextImage.getHeight());
GraphicsUtil.drawImage(finalImage.createGraphics(), image, 0, 0, null);
GraphicsUtil.drawImage(finalImage.createGraphics(), bottomTextImage, 0, image.getHeight(), null);
// 保存为图片文件
ImgUtil.write(finalImage, FileUtil.file(imagePath));
}
// 创建底部文字图片
private static BufferedImage createBottomTextImage(String text, int width, int height) {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 设置底部文字样式
Font font = new Font("宋体", Font.BOLD, 20);
g.setFont(font);
g.setColor(Color.BLACK);
g.setBackground(Color.WHITE);
// 绘制底部文字
g.drawString(text, 10, 30);
g.dispose();
return image;
}
}
上述代码中的createBottomTextImage方法用来创建底部文字图片,QrCodeUtil.generate方法生成二维码图片,然后使用GraphicsUtil.drawImage方法将二维码图片和底部文字图片合并为最终的图片。最后使用ImgUtil.write方法将最终图片保存到文件中
原文地址: https://www.cveoy.top/t/topic/iQgR 著作权归作者所有。请勿转载和采集!