JAvaサムネイル実装


ユーザは画像をアップロードし、サムネイル表示を生成します.以下のコードは本人が修正したものです.必要な友人への参考に供する
 
ImageHandlerServiceletクラス 
package com.web.util;
import java.awt.image.BufferedImage;

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;


import com.web.util.PicZoom;

public class ImageHandlerServlet extends HttpServlet{	
    protected void service(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, java.io.IOException {
                    //     
	        String srcImgFileName = request.getParameter("imgPath");
	        if(null == srcImgFileName || "".equals(srcImgFileName)) {
	            throw new ServletException("      !");
	        }
	        response.setContentType("image/jpeg");
	        
	        ServletOutputStream sos = response.getOutputStream();
	        
	        //  PicZoom      zoom         。 
	        BufferedImage buffImg = PicZoom.zoom(srcImgFileName);
	        //  JPEG     ,             JPEG     。
	        JPEGImageEncoder jpgEncoder = JPEGCodec.createJPEGEncoder(sos);
	        //  BufferedImage   JPEG     。
	        jpgEncoder.encode(buffImg);
	        sos.close();
    	}
}

この行のコードは、インタフェースから画像のパスString srcImgFileNamee=request.getParameter(「imgPath」)を受信する必要があります.
 
PicZoomクラス
package com.web.util;

import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.Graphics2D;

import javax.swing.ImageIcon;

public class PicZoom {
	
      private static final int WIDTH = 50; //     
      private  static final int HEIGHT = 50;//     	
    public static BufferedImage zoom(String srcFileName) {
        //          ImageIcon  。
        ImageIcon imgIcon = new ImageIcon(srcFileName);
        //  Image  。
        Image img = imgIcon.getImage();

        return zoom(img);
    }
    
    public static BufferedImage zoom(Image srcImage) {
        //             BufferedImage  。
        BufferedImage buffImg = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
//        buffImg.flush();                                        
        //  Graphics2D  ,   BufferedImage     。
        Graphics2D g = buffImg.createGraphics();
        
        //               。
        g.setColor(Color.WHITE);
        //                    。
        g.fillRect(0, 0, WIDTH, HEIGHT);
        //        BufferedImage         。
        g.drawImage(srcImage, 0, 0, WIDTH, HEIGHT, null);
        //              。
        g.dispose();
        //    Image                .
        srcImage.flush();
        
        return buffImg;
    }
}

 web.xml
	<servlet>
    	<servlet-name>ImageHandlerServlet</servlet-name>
    	<servlet-class>com.web.util.ImageHandlerServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ImageHandlerServlet</servlet-name>
		<url-pattern>/imageHandlerServlet</url-pattern>          
	</servlet-mapping>

 
 index.jsp 
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<!-- 
imgPath         
 -->
<img SRC="imageHandlerServlet?imgPath=d:/img/11.gif"/>
</body>
</html>

 
以上の実装では,「.jpg」,「.gif」,「.png」,「.jpeg」形式のみがサポートされている.