首页 > 代码库 > 图片添加水印

图片添加水印

  在平时的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:CIACs16  * 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         try28         {        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项目中使用。

 

图片添加水印