修改商户二维码上传,新增品牌,辅助条码,spu
This commit is contained in:
1 parent
9b2f155f5a
commit
050e37afe9
32 files changed
+1216
-39
No files matched your search
+62
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user