java 图片铺满倾斜 的文字水印
时间: 2023-05-23 13:02:46 浏览: 414
您可以使用 Java 的 Graphics2D 类来实现这个需求。以下是一个简单的代码示例:
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) throws Exception {
// 读取原始图片
BufferedImage originalImage = ImageIO.read(new File("original_image.jpg"));
// 创建一个大小和原始图片相同的 BufferedImage 对象,用来绘制水印
BufferedImage watermarkedImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB);
// 获取 Graphics2D 对象并设置字体、颜色
Graphics2D g2d = watermarkedImage.createGraphics();
g2d.drawImage(originalImage, 0, 0, null);
g2d.setFont(new Font("Arial", Font.BOLD, 36));
g2d.setColor(Color.BLACK);
// 旋转画布,倾斜水印文字
g2d.rotate(Math.toRadians(30), originalImage.getWidth() / 2, originalImage.getHeight() / 2);
// 绘制水印
String watermarkText = "Watermark Text";
FontMetrics fontMetrics = g2d.getFontMetrics();
int stringWidth = fontMetrics.stringWidth(watermarkText);
int x = (originalImage.getWidth() - stringWidth) / 2;
int y = originalImage.getHeight() / 2;
g2d.drawString(watermarkText, x, y);
// 保存水印图片
ImageIO.write(watermarkedImage, "jpg", new File("watermarked_image.jpg"));
}
}
这里使用了 Math.toRadians(30) 来将画布逆时针旋转 30 度,可以根据需要修改旋转角度。
注意:上述示例中读取了一个名为 "original_image.jpg" 的原始图片,如果要复现需自行准备该图片,或者将代码中的文件路径改为自己的图片路径。
相关推荐











