首页 >> 8idea教程 >> 程序开发 >> java图片加水印方法类

java图片加水印方法类

来源:互联网     作者:未知    发布日期:2008-11-07     浏览次数:

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class MyImageWater{
 public static boolean createMark(final String filePath, final String watermark) throws Exception {
  final ImageIcon imgIcon = new ImageIcon(filePath);
  final Image theImg = imgIcon.getImage();
  final ImageIcon waterIcon = new ImageIcon(watermark);
  final Image waterImg = waterIcon.getImage();
  final int width = theImg.getWidth(null);
  final int height = theImg.getHeight(null);
  if((width ==-1) || (height == -1)){
   return false;
  }else{
   final BufferedImage bimage = new BufferedImage(width, height,
     BufferedImage.TYPE_INT_RGB);
   final Graphics2D g = bimage.createGraphics();
   g.setColor(Color.red);
   g.setBackground(Color.white);
   g.drawImage(theImg, 0, 0, null);
   g.drawImage(waterImg, width-150, height-62, null);
   //g.drawString("TaoRuan.CoM", 5, 5); //添加文字  
   g.dispose();
   try {
    final FileOutputStream out = new FileOutputStream(filePath);
    final JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    final JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
    param.setQuality(1.0f, true);
    //param.setXDensity(0);
    encoder.encode(bimage, param);
    out.close();
    
   } catch (final Exception e) {
    e.toString();
    return false;
   }
   return true;
  }
  
 }
}