update 重写水印图片获取逻辑

master
管理员 1 year ago
parent 42408657be
commit 96d38ce0a8

@ -0,0 +1,29 @@
package com.ruoyi.file;
import com.ruoyi.file.config.SpringFileStorageProperties;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
/**
* <pre>
* -
* </pre>
* @author J.L.Zhou<12020042> - <151 1104 7708>
* @since 2024-11-13 11:08
* @version 1.0
*/
@Configuration
@Slf4j
@RequiredArgsConstructor
public class FileRunner implements ApplicationRunner {
private final SpringFileStorageProperties properties;
@Override
public void run(ApplicationArguments args) throws Exception {
log.info("文件图片上传下载模块(File)模块启动成功");
properties.init();
}
}

@ -2,6 +2,10 @@ package com.ruoyi.file.config;
import cn.hutool.core.img.ImgUtil; import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.ruoyi.common.utils.spring.SpringUtils;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
@ -10,10 +14,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import javax.annotation.PostConstruct;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.InputStream;
@Configuration @Configuration
@ -24,22 +29,48 @@ public class SpringFileStorageProperties extends org.dromara.x.file.storage.spri
private Integer maxWidth; private Integer maxWidth;
private Integer maxHeight; private Integer maxHeight;
private File watermark; private String watermark = "classpath:/watermark.png";
private Integer thWidth; private Integer thWidth;
private Integer thHeight; private Integer thHeight;
@Getter @Getter
@Setter(AccessLevel.PRIVATE) @Setter(AccessLevel.PRIVATE)
private BufferedImage watermarkImage; private BufferedImage watermarkImage;
@PostConstruct /**
* FileRunner
*/
// @PostConstruct
public void init() { public void init() {
try { try {
if (watermark != null && watermark.isFile()) { if (StrUtil.isBlank(watermark)) {
watermarkImage = ImgUtil.read(watermark); log.info("水印图片未配置,不添加水印");
log.warn("水印图片加载成功:" + watermark.toString()); return;
} }
if (watermark.contains("://")) {
InputStream in = HttpUtil.createGet(watermark).execute().bodyStream();
watermarkImage = ImgUtil.read(in);
IoUtil.close(in);
log.info("水印图片加载成功:" + watermark);
} else {
File file = new File(watermark);
if (file.isFile()) {
watermarkImage = ImgUtil.read(file);
log.info("水印图片加载成功:" + watermark);
return;
}
Resource resource = SpringUtils.context().getResource(watermark);
if (resource.exists() && resource.isFile()) {
watermarkImage = ImgUtil.read(resource.getFile());
log.info("水印图片加载成功:" + watermark);
} else {
log.info("水印图片不存在:" + watermark);
}
}
} catch (Exception e) { } catch (Exception e) {
log.warn("初始化水印失败", e); log.warn("水印图片初始化失败: " + watermark, e);
} }
} }
} }

Loading…
Cancel
Save