水印工具调整

This commit is contained in:
2025-07-19 15:49:35 +08:00
parent 2274ca7010
commit ce0cbb1c91

View File

@@ -9,6 +9,7 @@ import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@@ -45,8 +46,9 @@ public class NormalWatermarkOperator implements IOperator {
public static int EXTRA_BORDER_PX = 0;
public static int OFFSET_Y = 90;
public static Color BG_COLOR = Color.WHITE;
public static int QRCODE_SIZE = 100;
public static int QRCODE_SIZE = 150;
public static int QRCODE_OFFSET_X = 10;
public static int QRCODE_OFFSET_Y = -20;
public static int SCENIC_FONT_SIZE = 42;
public static Color scenicColor = Color.white;
@@ -82,7 +84,11 @@ public class NormalWatermarkOperator implements IOperator {
int datetimeLineWidth = scenicFontMetrics.stringWidth(info.getDatetimeLine());
int offsetX = (newImage.getWidth() - newQrcodeWidth - QRCODE_OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth)) / 2;
int offsetY = EXTRA_BORDER_PX + baseImage.getHeight() - OFFSET_Y - newQrcodeHeight;
g2d.drawImage(qrcodeImage, offsetX, offsetY, newQrcodeWidth, newQrcodeHeight, null);
Shape originalClip = g2d.getClip();
Ellipse2D circle = new Ellipse2D.Double(offsetX, offsetY + QRCODE_OFFSET_Y, newQrcodeWidth, newQrcodeHeight);
g2d.setClip(circle);
g2d.drawImage(qrcodeImage, offsetX, offsetY + QRCODE_OFFSET_Y, newQrcodeWidth, newQrcodeHeight, null);
g2d.setClip(originalClip);
g2d.setFont(scenicFont);
g2d.setColor(scenicColor);
g2d.drawString(info.getScenicLine(), offsetX + newQrcodeWidth + QRCODE_OFFSET_X, offsetY + scenicLineHeight + FONT_GLOBAL_OFFSET_PERCENT * scenicLineHeight);