修改商户二维码上传,新增品牌,辅助条码,spu

This commit is contained in:
zjf committed 2024-12-23 19:10:34 +08:00
1 parent 9b2f155f5a
commit 050e37afe9
32 files changed
+1216 -39

No files matched your search

@@ -0,0 +1,62 @@
package com.bsd.pjcloud.common.core.util;
import io.nayuki.qrcodegen.QrCode;
import io.nayuki.qrcodegen.QrCode.Ecc;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
public class QRCodeImageGenerator {
public static byte[] generateQrCodeImage(String content, int size) throws Exception {
// 生成二维码对象
QrCode qrCode = QrCode.encodeText(content, Ecc.MEDIUM);
// 创建BufferedImage
BufferedImage image = toBufferedImage(qrCode, size);
// 将图片写入字节数组输出流
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", outputStream);
return outputStream.toByteArray();
}
private static BufferedImage toBufferedImage(QrCode qrCode, int size) {
int scale = size / qrCode.size; // 计算像素点的缩放比例
int border = 4; // 留白边框宽度(单位:像素)
int imageSize = (qrCode.size + border * 2) * scale;
BufferedImage image = new BufferedImage(imageSize, imageSize, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setColor(Color.WHITE); // 设置背景为白色
g.fillRect(0, 0, imageSize, imageSize);
g.setColor(Color.BLACK); // 设置二维码像素点为黑色
for (int y = 0; y < qrCode.size; y++) {
for (int x = 0; x < qrCode.size; x++) {
if (qrCode.getModule(x, y)) {
g.fillRect((x + border) * scale, (y + border) * scale, scale, scale);
}
}
}
g.dispose();
return image;
}
public static void main(String[] args) throws Exception {
String content = "Hello, QR Code!";
int size = 300;
// 生成二维码字节流
byte[] imageBytes = generateQrCodeImage(content, size);
System.out.println("QR Code image generated, size: " + imageBytes.length + " bytes.");
// 可以保存到文件验证
// Files.write(Path.of("qrcode.png"), imageBytes);
}
}