圖片加水印

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");
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章