Java实现 给图片添加文字水印
public static void main(String[] args) throws IOException {
String inputImagePath = "D:\\Data\\picture\\10001.png";
String outputPath = "D:\\Data\\picture\\TEST.jpg";
String text = "给你加一个水印";
addWaterMarkToImage(inputImagePath, outputPath, text);
}
public static void addWaterMarkToImage(String inputImagePath, String outputPath, String text) throws IOException {
File file = new File(inputImagePath);
Image image = ImageIO.read(file);
BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
float alpha = 1F;
Graphics2D g2 = bi.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
g2.setComposite(ac);
g2.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null), null);
Font font = new Font("宋体", Font.BOLD, 30);
g2.setFont(font);
FontRenderContext frc = g2.getFontRenderContext();
TextLayout tl = new TextLayout(text, font, frc);
Shape sha = tl.getOutline(AffineTransform.getTranslateInstance(30, 30));
g2.setColor(Color.black);
g2.draw(sha);
g2.setColor(Color.white);
g2.fill(sha);
ImageIO.write(bi, "PNG", new FileOutputStream(outputPath));
}