以下是一个简单的Java代码示例,使用Java的`BufferedImage`类和`Graphics2D`类来在图片上添加平铺的水印。这个示例假设您已经有一个名为`imageToWatermark.jpg`的图片文件,并且您希望将其添加为水印。 ```java import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class Watermark { public static void main(String[] args) { try { // 加载原始图片 BufferedImage image = ImageIO.read(new File("imageToWatermark.jpg")); // 创建带有水印的图像 BufferedImage watermarkedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = watermarkedImage.createGraphics(); g2d.drawImage(image, 0, 0, null); // 添加水印 String watermarkText = "My Watermark"; FontMetrics fm = g2d.getFontMetrics(); int textWidth = fm.stringWidth(watermarkText); int x = (image.getWidth() - textWidth) / 2; // 水印的起始位置,居中 int y = (image.getHeight() + fm.getAscent()) / 2; // 水印的起始位置,居中 g2d.setColor(Color.BLACK); // 设置水印颜色为黑色 g2d.fillRect(x, y, textWidth, fm.getAscent()); // 填充矩形以放置水印文字 g2d.setColor(Color.WHITE); // 设置文本颜色为白色 g2d.drawString(watermarkText, x + 3, y + 3); // 在矩形的中间位置添加文字 g2d.dispose(); // 释放系统资源 // 将水印图片保存到文件 ImageIO.write(watermarkedImage, "jpg", new File("watermarkedImage.jpg")); } catch (Exception e) { e.printStackTrace(); } } } ``` 这段代码首先加载原始图片,然后创建一个新的带有水印的图像。然后,它使用`Graphics2D`类将原始图像绘制到新的图像上,并在适当的位置添加水印。它将处理后的图像保存到文件中。此代码示例中的水印是平铺在整个图像上的,如果您需要更改水印的位置或大小,您需要相应地调整代码。 [2024-02-22 17:05:52 | AI写代码神器 | 589点数解答]