【转】图片加水印

来源:互联网 发布:香港有哪些导演 知乎 编辑:程序博客网 时间:2024/04/30 03:44

public class Graphics {

       /**
  * 图片加水印的方法
  * @param waterMask 水印图片的地址
  * @param picturePath 要加水印的图片地址
  * @param newPicturePath 得到新图片的地址
  * @return 得到新图片的地址
  */
 @SuppressWarnings("static-access")
 public static void WaterMask(String waterMask,String picturePath,String newPicturePath){
 
   //先画出原图的
     ImageIcon imgIcon = new ImageIcon(picturePath);
      Image theImg = imgIcon.getImage();
      int width = theImg.getWidth(null);
      int height = theImg.getHeight(null);

      BufferedImage bimage = new BufferedImage(width, height, 1);
      Graphics2D g = bimage.createGraphics();
      //g.setBackground(Color.white);
     
      g.drawImage(theImg, 0, 0, null);
     
      //再画出水印
      ImageIcon waterIcon = new ImageIcon(waterMask);
      Image waterImg = waterIcon.getImage();
      int waterWidth = waterImg.getWidth(null);
      int waterHeight = waterImg.getHeight(null);
     
      g.drawImage(waterImg, width-waterWidth, height-waterHeight, waterWidth, waterHeight, null);
     
      g.dispose();
     
     
      //生成输出的图片的文件
      try {
          FileOutputStream out = new FileOutputStream(newPicturePath);
          JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
          JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
          param.setQuality(1, true);
          encoder.encode(bimage, param);
          out.close();
      }
      catch (Exception e) {
       e.printStackTrace();
      }
 }

//测试

 public static void main(String[] args){
  WaterMask("d:/1.jpg","d:/风光1.jpg","d:/water.jpg");
 }

}

 

 

 

注:本文转自 http://blog.csdn.net/liusong721/archive/2009/08/13/4442649.aspx