zoukankan      html  css  js  c++  java
  • 图片添加水印

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

  • 相关阅读:
    计算机网络的三种通讯模式(单播,广播,组播)
    java字符串面试题
    java使用纯命令行打包项目
    java字节码的工具(含IDEA插件)
    Spring配置之context:annotation与、component-scan以及annotation-driven
    Java ThreadLocal的使用案例
    对称平方数(to_string函数,stoi函数真香)
    字符串最后一位长度
    缺失的括号
    数三角形
  • 原文地址:https://www.cnblogs.com/zhi-hao/p/4179081.html
Copyright © 2011-2022 走看看