以下是一个使用Java和Java的图像处理库ImageIO和Graphics2D来给图片添加中文文字水印并设置透明度的示例代码: ```java import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageWatermark { public static void main(String[] args) { try { // 读取原始图片文件 File inputFile = new File("input.jpg"); BufferedImage inputImage = ImageIO.read(inputFile); // 创建输出图片文件 File outputFile = new File("output.jpg"); BufferedImage outputImage = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_RGB); // 在输出图片上绘制水印文字并设置透明度 Graphics2D g2d = outputImage.createGraphics(); g2d.setFont(new Font("宋体", Font.BOLD, 30)); // 设置字体和大小 g2d.setColor(Color.BLACK); // 设置文字颜色 String watermarkText = "这是水印文字"; // 设置要添加的水印文字 g2d.drawString(watermarkText, inputImage.getWidth() / 2 - g2d.getFontMetrics().stringWidth(watermarkText) / 2, inputImage.getHeight() / 2); // 定位水印文字位置 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 设置透明度为50% g2d.drawImage(inputImage, 0, 0, null); // 将原始图片绘制到输出图片上,确保水印文字位于原始图片之上 g2d.dispose(); // 释放资源 // 将输出图片保存到文件 ImageIO.write(outputImage, "jpg", outputFile); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,我们首先使用`ImageIO`类读取原始图片文件,并将其存储在一个`BufferedImage`对象中。然后,我们创建一个新的`BufferedImage`对象作为输出图片,并将原始图片绘制到输出图片上。接下来,我们使用`Graphics2D`对象绘制水印文字,并将其定位在输出图片的合适位置。我们将输出图片保存到文件。 在绘制水印文字时,我们使用`AlphaComposite`类的`SRC_OVER`模式设置透明度为50%。你可以根据需要调整透明度值来控制水印的可见性和清晰度。在示例代码中,我们将透明度设置为50%,这样可以看到水印文字的轮廓但不会影响原始图片的清晰度。你可以根据实际需要调整透明度值来达到更好的效果。 [2024-02-22 16:18:20 | AI写代码神器 | 643点数解答]