图片添加水印

  在平时的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项目中使用。

 

你可能感兴趣的:(图片)