/**
* 利用Servlet生成动态的图像
* JPEGServlet.java
*/
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class JPEGServlet extends HttpServlet{
/**
* 处理 Http Get request
*/
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("image/jpeg");
//注意这里的MIME 类型
ServletOutputStream out = response.getOutputStream();
//构造一个缓冲图像
BufferedImage image = new BufferedImage(750,30,BufferedImage.TYPE_INT_RGB);
int per = 0;
per = Integer.parseInt((String)getInitParameter("size"));
Graphics graphics = image.getGraphics();
graphics.setColor(Color.green);
graphics.fillRect(0,0,750,30);//first draw a rectangle
graphics.setColor(Color.YELLOW);//change color
graphics.fillRect(0,0,750*per/100,30);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
/**
* 处理 Http Post request,和doGet一样
*/
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{
doGet(request,response);
}
}
本文介绍了一个使用Java Servlet生成动态图像的示例程序JPEGServlet。该Servlet能够根据初始化参数设置图像填充的比例,创建一个750x30像素的JPEG图像,并通过HTTP响应返回。文章详细展示了如何使用Java AWT库绘制图像、如何设置HTTP响应类型为image/jpeg以及如何使用JPEGCodec进行图像编码。
249

被折叠的 条评论
为什么被折叠?



