专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
java
当前位置:首页 > 技术文档 > java >  > 
用filter 为网站,批量加水印

如BLOG ,网店上,都需要用到,带水印的图片, 通常是,用PS(photoshop) 先做出来PSD 的文件,用的时候,一张一张的向图片添加,此文章不介绍,PS 的制作技术,主要讲,用程序生成。
在JavaEE中有一种技术加 Servlet  其中包括 filter 过虑器,废话不多说,看源代码

// TODO Auto-generated method stub
  HttpServletRequest request=(HttpServletRequest)arg0;
  HttpServletResponse response=(HttpServletResponse)arg1;
  /*************************************/
  String filePath="D:/Tomcat 6.0/webapps/mytest3/img/logo.gif";//水印图片的路径
  FileInputStream fin=new FileInputStream(filePath);//构建一个文件输入流
  Image fimg=ImageIO.read(fin);//转为 Servlet 内置对象
  int fw=fimg.getWidth(null);//获得宽度
  int fh=fimg.getHeight(null);//高度
/*************************************/
  String path=request.getRealPath(request.getServletPath());
  FileInputStream in=new FileInputStream(path);
  Image src=ImageIO.read(in);
  int w=src.getWidth(null);
  int h=src.getHeight(null);
  BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板
  Graphics g=img.getGraphics();//得到画笔
  g.drawImage(src,0,0,w,h,null);//此处为 imageIO.read ();//把源图片写入画板
  g.drawImage(fimg,w-550,h-290,fw,fh,null);//把水印图片写入画板
  g.dispose();//生成图片
  JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());
  e.encode(img);
  response.getOutputStream().close();
在这里特别说明的是,水印的图片格式,一定要是.gif 的。
源图片: