본문 바로가기

프로그래밍/JSP

JSP Thumbnail 썸네일 소스


썸네일을 만들기 위해 JAI API 다운로드 및 설치는 여기서

https://jai.dev.java.net/binary-builds.html#Release_builds

"jai-1_1_2_01-lib-windows-i586-jdk.exe"를 다운 받는다.

 

실행만 하면 알아서 설치해 준단다.. 아래 내용을 ..

JAI(Java Advance Imaging) API를사용하기 위해서는 중요한

jai_codec.jar,jai_core.jar 두 파일을

자바홈/jre/lib/ext 폴더에 설치해야하는디 자동이네..

 

폼 파일

========= thumbnailForm.jsp =========

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
 <head>
  <title>썸네일 이미지 생성</title>
 </head>
 <body>
  <form name="fileForm" method="post" action="thumbnailPro.jsp" enctype="multipart/form-data">
   <input type="file" name="image" /><br />
   <input type="submit" value="썸네일 이미지 생성" />
  </form>
 </body>
</html>

====================================

 

처리파일

========= thumbnailPro.jsp =========

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="com.oreilly.servlet.MultipartRequest"
   import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"
   import="thumbnail.*"
   import="java.util.*"
   import="java.io.*"
%>
<%
 String realFolder = "";
 String saveFolder = "thumbnail/saveImage";
 String encType="euc-kr";
 int maxSize = 5*1024*1024;
 ServletContext context = getServletContext();
 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()){ 
   String name = (String)files.nextElement(); // input type=file 인 파라미터 이름
   String filename = multi.getFilesystemName(name); // 서버에 저장된 파일이름
   String orgFileName = realFolder+"\\"+filename; //경로+ 원본 이미지 파일명
   String thumbFileName = realFolder+"\\small"+filename; //경로+ 썸네일 이미지파일명
   Thumbnail.createImage(orgFileName,thumbFileName,zoom); // 썸네일 이미지생성
%>
   원본 파일 저장 경로 및 파일명 : <%= orgFileName %>
   <img src="<%= orgFileName %>" border="0" /><br /><br />
   썸네일 이미지 저장 경로 및 파일명 : <%= thumbFileName %>
   <img src="<%= thumbFileName %>" border="0" />
<%
  }
 }catch(IOException e){
  System.out.print(e);
 }catch(Exception e){
  System.out.print(e);
 }
%>
====================================

 

썸네일 생성 자바 파일

========= thumbnail.Thumbnail =========

package thumbnail;

import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.Graphics2D;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;

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); //원본이미지파일로 객체생성
  BufferedImage im = rOp.getAsBufferedImage(); // 버퍼드이미지 객체를 얻어옴
  if(zoom <=0) zoom=1;
  int width = im.getWidth() / zoom;
  int height = im.getHeight() / zoom;
  // 메모리에 이미지 공간을 생성
  BufferedImage thumb = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
  Graphics2D g2 = thumb.createGraphics(); // 버퍼드이미지객체로 부터 그래픽2D객체를 얻어옴
  g2.drawImage(im,0,0,width,height,null); // 메모리의 이미지 공간에 원본 이미지를 지정한크기로 그린다.
  ImageIO.write(thumb,"jpg",save); // 그린 이미지를 파일로 저장한다.
 }
}

====================================