java 图片 水印

直接给源码!



package Image;



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 WaterMarkUtils {
/**

* @param srcImgPath源图片路径
* @param tarImgPath保存的图片路径
* @param waterMarkContent 水印内容
* @param markContentColor水印颜色
* @param font 水印字体
*/
public void addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent,Color markContentColor,Font font) {


       try {
           // 读取原图片信息
           File srcImgFile = new File(srcImgPath);//得到文件
           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(markContentColor); //根据图片的背景设置水印颜色
           g.setFont(font);              //设置字体


           //设置水印的坐标
           int x = srcImgWidth - getWatermarkLength(waterMarkContent, g);  
           int y = srcImgHeight -(1/2)* getWatermarkLength(waterMarkContent, g);
           g.drawString(waterMarkContent, x, y);  //画出水印
           g.dispose();  
           // 输出图片  
           FileOutputStream outImgStream = new FileOutputStream(tarImgPath);  
           ImageIO.write(bufImg, "jpg", outImgStream);
           System.out.println("添加水印完成");  
           outImgStream.flush();  
           outImgStream.close();  


       } catch (Exception e) {
           // TODO: handle exception
       }
   }
   public int getWatermarkLength(String waterMarkContent, Graphics2D g) {  
       return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(), 0, waterMarkContent.length());  
   }  
   public static void main(String[] args) {
       Font font = new Font("微软雅黑", Font.PLAIN, 25);                     //水印字体
       String srcImgPath="F:\\Image/111.jpg"; //源图片地址
       String tarImgPath="F:\\Image/1111.jpg"; //待存储的地址
       String waterMarkContent="2222222222!";  //水印内容
       Color color=new Color(255,255,255,128);                               //水印图片色彩以及透明度
       new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, waterMarkContent, color,font);
       
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值