feat(image): 添加水印四边偏移支持

- 在 WatermarkInfo 中新增 offsetTop、offsetBottom、offsetLeft 和 offsetRight 字段
- 在 PrinterDefaultWatermarkOperator 中实现四边偏移逻辑,默认值为 0
- 根据图片方向设置不同的偏移值,横图左偏移 40 像素,竖图下偏移 30 像素
- 调整二维码和文字位置计算方式以应用偏移量
- 优化水印处理流程,确保偏移参数正确传递和使用
This commit is contained in:
2025-11-18 16:24:15 +08:00
parent 6e84a5fd43
commit 208202ba41
3 changed files with 29 additions and 6 deletions

View File

@@ -790,6 +790,7 @@ public class PrinterServiceImpl implements PrinterService {
try {
HttpUtil.downloadFile(item.getCropUrl(), originalFile);
WatermarkInfo watermarkInfo = new WatermarkInfo();
// 判断图片方向并处理旋转
boolean isLandscape = false;
@@ -807,10 +808,10 @@ public class PrinterServiceImpl implements PrinterService {
rotatedOriginalFile = new File("print_" + processId + "_rotated.jpg");
ImageUtils.rotateImage90(originalFile, rotatedOriginalFile);
log.info("竖图已旋转为横图,照片ID: {}", item.getId());
watermarkInfo.setOffsetLeft(40);
}
// 处理水印
WatermarkInfo watermarkInfo = new WatermarkInfo();
watermarkInfo.setScenicLine(scenicConfig.getString("print_watermark_scenic_text", ""));
watermarkInfo.setOriginalFile(needRotation ? rotatedOriginalFile : originalFile);
watermarkInfo.setWatermarkedFile(watermarkedFile);