图片添加水印

  在平时的web项目中我们可能需要在图片上加一些属于自己的东西,就像weibo发图片会带有微博名的水印,这个功能可以用在我们的web项目中,这样我们的图片将会与众不同。下面是实现该功能的代码

这个是主要的类

 1 package ciacs.picture.test;
 2 import java.awt.Color;
 3 import java.awt.Font;
 4 import java.awt.Graphics;
 5 import java.awt.Image;
 6 import java.awt.image.BufferedImage;
 7 import java.io.FileOutputStream;
 8 
 9 import javax.swing.ImageIcon;
10 
11 import com.sun.image.codec.jpeg.JPEGCodec;
12 import com.sun.image.codec.jpeg.JPEGImageEncoder;
13 
14 /*
15  * @author:CIACs
16  * 
17  */
18 
19 
20 public class WaterMark{
21 
22     public boolean addMark(String file)
23     {
24         boolean flag=true;
25 
26         String str = "http://www.cnblogs.com/zhi-hao/";
27         try
28         {        
29             ImageIcon imgIcon=new ImageIcon(file);
30             Image img = imgIcon.getImage();
31             int width = img.getWidth(null);   
32             int height = img.getHeight(null); 
33             //create target image    
34             BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
35             //get a graphics pen   
36             Graphics g = image.createGraphics();   
37             //draw source image    
38             g.drawImage(img, 0, 0, width, height, null);       
39 
40             //可以改变画笔的颜色
41 
42             g.setColor(Color.blue);
43             //可以设置你要的字体、颜色、大小
44             g.setFont(new Font("Courier", Font.PLAIN, 23));
45             //设置水印出现在图片的位置
46             g.drawString(str, 280, height-23);    
47             g.dispose();        
48             FileOutputStream os = new FileOutputStream(file);    
49             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);    
50             encoder.encode(image);
51 
52         }catch(Exception e)
53         {
54             System.out.println(e.getMessage());
55             flag=false;
56         }            
57         return flag;
58     }
59 
60 } 

下面这个是测试类

 1 package ciacs.picture.test;
 2 
 3 public class test{
 4     
 5     public static void main(String[] args) {
 6         WaterMark mark = new WaterMark();
 7         //添加的为图片所在的路径
 8         mark.addMark("D:/test.png");
 9         
10         
11         
12     }
13 
14 }

结果:

 

  这个加水印的功能稍加修改就可以作为组件提供给我们的web项目中使用。

 

posted @ 2014-12-22 21:56  CIACs  阅读(347)  评论(0编辑  收藏  举报