java中用thumbnails给图片添加时间水印
时间: 2024-11-05 14:26:33 浏览: 34
java图片加水印(适应铺满)
5星 · 资源好评率100%
在Java中,给图片添加时间水印通常涉及到图像处理库,如Apache Commons Imaging或ImageIO。以下是一个简单的步骤概述:
1. **引入库**:首先需要导入所需的库,例如`java.awt.image.BufferedImage`、`java.io.File`和`javax.imageio.ImageIO`。
```java
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
```
2. **获取当前时间**:创建一个`SimpleDateFormat`实例,用于将日期和时间格式化为字符串。
```java
import java.text.SimpleDateFormat;
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timestamp = sdf.format(date);
```
3. **加载原始图片**:使用`ImageIO.read()`方法读取图片文件。
```java
BufferedImage originalImage = ImageIO.read(new File("path_to_your_image.jpg"));
```
4. **创建带水印的BufferedImage**:创建一个新的`BufferedImage`,通常是白色背景,然后在其上绘制文本作为水印。
```java
Font font = new Font("Arial", Font.BOLD, 18); // 设置字体和大小
Graphics2D g = originalImage.createGraphics();
g.setColor(Color.WHITE); // 设置背景颜色
g.fillRect(0, 0, originalImage.getWidth(), originalImage.getHeight()); // 清除原有内容
// 添加水印文本
g.setFont(font);
g.drawString(timestamp, 10, originalImage.getHeight() - 20); // 文本位置可以根据需要调整
```
5. **保存新图片**:最后,将带有水印的`BufferedImage`保存到新的文件。
```java
try {
ImageIO.write(originalImage, "jpg", new File("path_to_output_watermarked_image.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
```
6. **注意事项**:确保处理图像时考虑性能,尤其是对于大尺寸图片,因为频繁创建和操作`BufferedImage`可能会消耗资源。
阅读全文