썸네일 이미지 생성 소스
-------------------------------------------------------------
이미지파일 업로드 자바파일 컴파일후 패키지실행
-------------------------------------------------------------
package ch14;
import java.io.File;
import java.io.IOException;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Thumbnail
{
public Thumbnail() {}
public static void createImage(String loadFile, String saveFile,int zoom)
throws IOException //썸네일 이미지를 생성하는 메서드
{
File save = new File(saveFile); //썸네일 이미지 파일
RenderedOp rOp = JAI.create("fileload", loadFile); //loadFile는 원본 이미지파일 RenderedOp 객체생성
BufferedImage im = rOp.getAsBufferedImage(); //BufferedImage 객체를 얻어옴
if(zoom <= 0) zoom = 1; //zoom이 5이면 원본이미지의 1/5 크기가 된다.
int width = im.getWidth() / zoom;
int height = im.getHeight() / zoom;
BufferedImage thumb = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //메모리에 이미지 공간을 생성
Graphics2D g2 = thumb.createGraphics(); //BufferedImage로 부터 Graphics2D객체를 얻어냄
g2.drawImage(im, 0, 0, width, height, null); //메모리의 이미지공간에 원본 이미지를 가로 width, 세로 height 크기로 그린다.
ImageIO.write(thumb, "jpg", save); //메모리에 그린이미지를 파일로 저장
}
}
-------------------------------------------------------------
이미지파일 업로드 폼양식
-------------------------------------------------------------
<%@ page contentType="text/html;charset=euc-kr"%>
<html>
<head>
<title>썸네일(Thumbnail)이미지 예제</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>
<body>
<form name="fileForm" method="post" enctype="multipart/form-data" action="thumbnailPro.jsp">
원본이미지:
<input type="file" name="image"><br>
<input type="submit" value="썸네일이미지 만들기"><br>
</form>
</body>
</html>
-------------------------------------------------------------
썸네일 이미지 생성
-------------------------------------------------------------
<%@ page contentType="text/html;charset=euc-kr"%>
<%@ page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@ page import="ch14.Thumbnail"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%
String realFolder = "";//웹 어플리케이션상의 절대 경로
//파일이 업로드되는 폴더를 지정한다.
String saveFolder = "thumbnail";
String encType = "euc-kr"; //엔코딩타입
int maxSize = 5*1024*1024; //최대 업로될 파일크기 5Mb
ServletContext context = getServletContext();
//현재 jsp페이지의 웹 어플리케이션상의 절대 경로를 구한다
realFolder = context.getRealPath(saveFolder);
try
{
MultipartRequest multi = null;
//전송을 담당할 콤포넌트를 생성하고 파일을 전송한다.
//전송할 파일명을 가지고 있는 객체, 서버상의 절대경로,최대 업로드될 파일크기, 문자코드, 기본 보안 적용
multi = new MultipartRequest(request,realFolder,maxSize,encType,new DefaultFileRenamePolicy());
Enumeration files = multi.getFileNames();
int zoom=5;
//파일 정보가 있다면
while(files.hasMoreElements()){
//input 태그의 속성이 file인 태그의 name 속성값 :파라미터이름
String name = (String)files.nextElement();
//서버에 저장된 파일 이름
String filename = multi.getFilesystemName(name);
String orgFileName= realFolder+"\\"+filename;
String thumbFileName= realFolder+"\\small"+filename;
Thumbnail.createImage(orgFileName, thumbFileName, zoom);
%>
원본파일 저장경로및 파일명: <%=orgFileName%><br>
<img src="<%=orgFileName%>" border="0"><br><br><br>
"썸네일 이미지 저장경로및 파일명: "<%=thumbFileName%><br>
<img src="<%=thumbFileName%>" border="0">
<%
}
}catch(IOException ioe){
ioe.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
%>
[출처] [JAI] 썸네일 이미지 예제소스|작성자 랭바다