java web图片水印技术

6 篇文章 0 订阅
   水印开发是web开发中一种比较常见的功能,实现的代码很简单。下面举例实现图片的水印效果,通过jsp页面请求servlet服务响应,把响应的结果反映给客户端。

水印功能代码如下:
1、jsp页面:

画布水印 2、创建过滤器,实现配置xml动态修改字符编码 <?xml version="1.0" encoding="UTF-8"?> javawebDemo6 BasedServlet com.ls.util.BasedServlet BasedServlet /servlet/BasedServlet index.html index.htm index.jsp default.html default.htm default.jsp **3、过滤器类解决参数传递问题** import java.io.IOException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

public class BasedServlet extends HttpServlet {

@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
	// TODO Auto-generated method stub
	Class<? extends BasedServlet> reqClass=this.getClass();
	req.setCharacterEncoding("utf-8");
	res.setCharacterEncoding("utf-8");
	res.setContentType("text/html;charset=utf-8");
	String op=req.getParameter("op");		
	try {
		Method method=reqClass.getMethod(op, HttpServletRequest.class,HttpServletResponse.class);
	    Object invoke=method.invoke(this,req,res);
	    if(invoke!=null){
	    	req.getRequestDispatcher((String)invoke).forward(req, res);	    	
	    }
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
}

}
4、servlet服务类:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.ImageIcon;
import com.ls.util.BasedServlet;
public class ImgServlet extends BasedServlet {
public void updateImg(HttpServletRequest req,HttpServletResponse res){
//获取图片
String mainImg=req.getServletContext().getRealPath("/upfile/Koala.jpg");
String logoImg=req.getServletContext().getRealPath("/upfile/logo.JPG");
//转换图片
ImageIcon mainIcon=new ImageIcon(mainImg);
ImageIcon logoIcon=new ImageIcon(logoImg);
//创建画布
BufferedImage buffImg= new BufferedImage(mainIcon.getIconWidth(), mainIcon.getIconHeight(),BufferedImage.TYPE_3BYTE_BGR);
//获得画笔
Graphics gt=buffImg.getGraphics();
//绘制图片
gt.drawImage(mainIcon.getImage(),0,0,null);
gt.drawImage(logoIcon.getImage(),17,400,null);
//将绘制的图给主图
gt.setColor(Color.pink);
gt.setFont(new Font(“黑体”, Font.BOLD, 24));
gt.drawString(“水印”,200, 200);
//存放画好的图
String saveImg=req.getServletContext().getRealPath("/upfile");
try {
ImageIO.write(buffImg,“jpg”, new File(saveImg+"/mainsimg5.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值