?? createimageservlet.java
字號:
package com.image;
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.imageio.ImageIO;
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.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.awt.font.*;
import java.awt.geom.Rectangle2D;
public class CreateImageServlet extends HttpServlet {
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
doPost(request,response);
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expirse", 0); //prevents caching at the proxy server
String ddate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
response.setContentType("image/gif");
String path=this.getServletContext().getRealPath("/pic/time.gif");
String name="北京時間";
//name=new String(name.getBytes("8859_1"), "utf-8");
ServletOutputStream out=response.getOutputStream();
createImage(180,15,name+ddate,out,path);
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws IOException
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
private void createImage(int width,int height,String s,OutputStream out,String path) throws IOException {
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
File file=new File(path);
BufferedImage src = ImageIO.read(file);
Graphics2D g = bi.createGraphics();
// set background:
g.setBackground(Color.white);
g.clearRect(0, 0, width, height);
// set fore color:
g.setColor(Color.red);
// start draw:
// g.drawLine(0, 0, 99, 199);
FontRenderContext context = g.getFontRenderContext();
Font font = new Font("Serif", Font.BOLD, 10);
Rectangle2D bounds = font.getStringBounds(s, context);
double x =15;
double y = (height - bounds.getHeight()) / 2;
double ascent = -bounds.getY();
double baseY = y + ascent;
g.drawImage(src,1, 1, null);
g.drawString(s, (int)x, (int)baseY);
// end draw:
g.dispose();
bi.flush();
// encode:
try {
GIFEncoder encode = new GIFEncoder(bi);
encode.Write(out);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException ioe) {
// ioe.printStackTrace();
}
out.close();
// OutputStream output = new BufferedOutputStream(
// new FileOutputStream(args[1]));
// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
// param.setQuality(1.0f, false);
// encoder.setJPEGEncodeParam(param);
// try {
// encoder.encode(bi);
// }
// catch(IOException ioe) {
// ioe.printStackTrace();
// }
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -