java实现给图片添加水印

通过Java代码进行图片添加水印

package com.sys.controller;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
 
public class ImageRemark {
 
    private static final Color color = Color.BLACK;
    private static final Font font = new Font("宋体", Font.BOLD, 26);//字体
 
    public static void main(String[] args){
        addWatermark("C:\\Users\\Administrator\\Desktop\\Snipaste_2022-09-07_10-13-29.png","C:\\Users\\Administrator\\Desktop\\2.png","水印内容");
    }
 
    public static void addWatermark(String path, String outPathInteger,String remark)  {
        try {
            File srcImgFile = new File(path);
            Image srcImg = ImageIO.read(srcImgFile);
            int srcImgWidth = srcImg.getWidth(null);
            int srcImgHeight = srcImg.getHeight(null);
            BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
            Graphics2D g = bufImg.createGraphics();
            g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
            g.setColor(color);
            g.setFont(font);
            //设置水印的坐标
            int x = 20;
            int y = 40;
            g.drawString(remark, x, y);  //从坐标x,y开始添加水印
            g.dispose();
            // 输出图片
            FileOutputStream outImgStream = new FileOutputStream(outPathInteger);
            ImageIO.write(bufImg, "jpg", outImgStream);
            outImgStream.flush();
            outImgStream.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

 

posted @ 2022-09-16 10:02  本兮嘻嘻  阅读(1265)  评论(0编辑  收藏  举报