效果图
工具类
package org.jeecg.modules.system.util;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.img.Img;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import org.jeecg.common.exception.JeecgBootException;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
public class WatermarkUtils {
public static Integer FONT_SIZE = 20;
public static String FONT_NAME = "黑体";
public static Float ALPHA = 0.8f;
public static void init (
File sourceFile,
File destFile,
String ameraman,
String cameraSite
) throws Exception {
try {
ArrayList<String> textList = new ArrayList<>();
textList.add("拍摄人:" + ameraman );
textList.add("拍摄时间:" + new DateTime());
textList.add("拍摄位置:" + cameraSite);
Image srcImg = ImageIO.read(sourceFile);
int index = 1;
for (String pressText : textList) {
int y = index * FONT_SIZE;
Img img = Img.from(ImgUtil.read(sourceFile)).setPositionBaseCentre(false);
Image imageFile = img.pressText(pressText, Color.WHITE, new Font(FONT_NAME, Font.BOLD, FONT_SIZE), 0, y, ALPHA).getImg();
ImgUtil.write(imageFile, destFile);
index++;
}
} catch (IOException e) {
throw new JeecgBootException("添加水印失:"+e.getMessage());
}
}
}