请使用java实现给前端输入的图片左下角两三行的位置添加自定义的水印,水印信息包括有姓名工号地址等信息,如果地址信息过长可以换行
时间: 2024-03-01 13:54:09 浏览: 51
实现给图片添加水印的步骤如下:
1. 加载原始图片到内存中。
2. 创建一个Graphics2D对象,用于在图片上绘制文字。
3. 设置水印文字的字体、颜色、大小等属性。
4. 在图片的指定位置绘制水印文字。
5. 将修改后的图片保存到本地或者输出到输出流中。
以下是Java实现给图片添加水印的示例代码:
```java
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageWatermark {
public static void main(String[] args) throws IOException {
// 加载原始图片
BufferedImage image = ImageIO.read(new File("image.jpg"));
// 创建Graphics2D对象
Graphics2D g2d = image.createGraphics();
// 设置水印文字的字体、颜色、大小等属性
g2d.setFont(new Font("微软雅黑", Font.PLAIN, 20));
g2d.setColor(Color.WHITE);
// 定义水印文字
String watermarkText = "姓名:张三\n工号:123456\n地址:北京市朝阳区东四环中路";
// 在图片的指定位置绘制水印文字
int x = 10;
int y = image.getHeight() - 50;
for (String line : watermarkText.split("\n")) {
g2d.drawString(line, x, y);
y += g2d.getFontMetrics().getHeight();
}
// 将修改后的图片保存到本地或者输出到输出流中
ImageIO.write(image, "jpg", new File("image_with_watermark.jpg"));
}
}
```
在上面的示例代码中,我们使用了ImageIO类来加载图片,并将其转换为BufferedImage对象,然后创建了Graphics2D对象,用于在图片上绘制水印文字。在绘制水印文字时,我们使用了setFont()方法来设置水印文字的字体、颜色、大小等属性,然后使用drawString()方法在图片的指定位置绘制水印文字。最后,我们使用ImageIO类将修改后的图片保存到本地。
阅读全文