MultipartFile file 加水印
时间: 2023-10-18 07:30:42 浏览: 50
要给 MultipartFile 文件加水印,你可以使用 Java 的相关图像处理库,比如 Java ImageIO 和 Java Advanced Imaging (JAI)。下面是一个使用 Java ImageIO 和 JAI 给 MultipartFile 文件加水印的示例代码:
```java
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import org.springframework.web.multipart.MultipartFile;
public class WatermarkUtils {
public static void addWatermark(MultipartFile file, String watermarkText, String outputFilePath) throws IOException {
// 将 MultipartFile 转换为 BufferedImage
BufferedImage image = ImageIO.read(file.getInputStream());
// 创建 Graphics2D 对象,用于在图像上绘制水印
Graphics2D g2d = image.createGraphics();
// 设置水印字体样式和大小
Font font = new Font("Arial", Font.BOLD, 36);
g2d.setFont(font);
// 设置水印颜色
g2d.setColor(Color.RED);
// 设置水印位置,这里将水印放在右下角
int x = image.getWidth() - 200; // 水印 x 坐标
int y = image.getHeight() - 100; // 水印 y 坐标
// 绘制水印
g2d.drawString(watermarkText, x, y);
// 释放资源
g2d.dispose();
// 保存带有水印的图像到指定路径
File output = new File(outputFilePath);
ImageIO.write(image, "jpg", output);
}
}
```
你可以使用上述代码中的 `addWatermark` 方法给 MultipartFile 文件加上指定的水印,并保存为新的图像文件。方法中的参数 `watermarkText` 是要添加的水印文本,`outputFilePath` 是输出文件的路径。
请注意,上述代码中只处理了 JPEG 图像文件,如果需要处理其他格式的图像,可以适当修改代码。
希望对你有帮助!如有其他问题,请随时提问。