QQ扫一扫联系
在Java中,为图片添加水印并保存通常涉及使用Java的图像处理库,如java.awt
和javax.imageio
。以下是一个简单的示例,演示如何为图像添加文本水印并保存结果。
首先,确保你有一个原始图片文件(例如original.jpg
),以及你希望添加的水印文本。
import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class WatermarkExample { public static void main(String[] args) { try { // 读取原始图片 File input = new File("original.jpg"); BufferedImage image = ImageIO.read(input); // 创建Graphics2D对象以绘制水印 Graphics2D g2d = (Graphics2D) image.getGraphics(); // 设置透明度 AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); g2d.setComposite(alphaChannel); // 设置水印文本的颜色、字体和大小 g2d.setColor(Color.RED); Font font = new Font("Arial", Font.BOLD, 50); g2d.setFont(font); // 计算水印文本的位置 FontMetrics fm = g2d.getFontMetrics(); int x = (image.getWidth() - fm.stringWidth("Watermark Text")) / 2; int y = image.getHeight() - fm.getHeight() * 2; // 绘制水印文本 g2d.drawString("Watermark Text", x, y); // 释放Graphics2D对象 g2d.dispose(); // 保存带有水印的图片 File output = new File("watermarked.jpg"); ImageIO.write(image, "jpg", output); System.out.println("Watermark added and saved successfully!"); } catch (Exception e) { e.printStackTrace(); } } }
在这个示例中:
使用ImageIO.read
方法读取原始图片文件。
创建一个Graphics2D
对象,用于在图片上绘制水印。
使用AlphaComposite
设置水印的透明度。这里的透明度值为0.5,意味着水印将是半透明的。
设置水印文本的颜色、字体和大小。
计算水印文本在图片上的位置,使其居中显示(或根据需要调整位置)。
使用drawString
方法绘制水印文本。
释放Graphics2D
对象。
使用ImageIO.write
方法将带有水印的图片保存到文件。
请确保将"original.jpg"
替换为你的原始图片文件的路径,并将"Watermark Text"
替换为你希望添加的水印文本。运行此代码后,你将得到一个名为watermarked.jpg
的新文件,其中包含添加的水印。