添加依赖
<dependency><groupId>com.github.jai-imageio</groupId><artifactId>jai-imageio-core</artifactId><version>1.4.0</version></dependency>
java代码demo
package com.zkj.report.controller;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;public class WatermarkExample {public static void addWatermark(String inputImagePath) {try {File inputFile = new File(inputImagePath);long totalSpace = inputFile.getTotalSpace();System.out.println(totalSpace);BufferedImage srcImg = ImageIO.read(inputFile);int srcImgWidth = srcImg.getWidth(null);int srcImgHeight = srcImg.getHeight(null);System.out.println("图片的宽:"+srcImgWidth);System.out.println("图片的高:"+srcImgHeight);
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g = bufImg.createGraphics();g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
String waterMarkImage="/Users/candy/Desktop/11.png";Image srcWaterMark = ImageIO.read(new File(waterMarkImage));int widthWaterMark= srcWaterMark.getWidth(null);int heightWaterMark = srcWaterMark.getHeight(null);g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f));g.drawImage(srcWaterMark, (srcImgWidth - widthWaterMark) / 2,(srcImgHeight - heightWaterMark) / 2, widthWaterMark, heightWaterMark, null);g.dispose();String tarImgPath="/Users/candy/Desktop/jianxin.jpeg";FileOutputStream outImgStream = new FileOutputStream(tarImgPath);ImageIO.write(bufImg, "png", outImgStream);System.out.println("添加水印完成");outImgStream.flush();outImgStream.close();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {String inputImagePath = "/Users/candy/Desktop/WechatIMG83.jpeg";addWatermark(inputImagePath);}
}