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.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.Data;
import lombok.Getter;
@ -10,10 +14,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import javax.annotation.PostConstruct;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.InputStream;
@Configuration
@ -24,22 +29,48 @@ public class SpringFileStorageProperties extends org.dromara.x.file.storage.spri
private Integer maxWidth;
private Integer maxHeight;
private File watermark;
private String watermark = "classpath:/watermark.png";
private Integer thWidth;
private Integer thHeight;
@Getter
@Setter(AccessLevel.PRIVATE)
private BufferedImage watermarkImage;
@PostConstruct
/**
* FileRunner
*/
// @PostConstruct
public void init() {
try {
if (watermark != null && watermark.isFile()) {
watermarkImage = ImgUtil.read(watermark);
log.warn("水印图片加载成功:" + watermark.toString());
if (StrUtil.isBlank(watermark)) {
log.info("水印图片未配置,不添加水印");
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) {
log.warn("初始化水印失败", e);
log.warn("水印图片初始化失败: " + watermark, e);
}
}
}

Loading…
Cancel
Save