1)JAI(Java Advanced Imaging) API 개요
- http://www.oracle.com/technetwork/java/current-142188.html
(java advanced imaging 1.1.3 다운로드)
2)cos.jar 라이브러리 추가
-http://www.servlets.com
> com.oreilly.servlet (링크 클릭)
> cos-26Dec2008.zip (다운로드)
(소스)
<h3>썸네일 이미지 폼 예제</h3>
<form action ="thumbnail.jsp" method="post" enctype="multipart/form-data">
이미지 : <input type="file" name="filename"/><p>
<input type="submit" value="전송"/>
</form>
</center>
thumbnail.jsp
String imagePath = request.getRealPath(\\image); //프로젝트 내 가상경로 패스
int size = 1*1024*1024;
String filename = "";
MultipartRequest multi = new MultipartRequest(request, imagePath, size, "euc-kr", new DefaultFileRenamePolicy()); // 중복된 파일이 있을 경우 새이름으로
Enumeration files = multi.getFileNames(); //Enumeration 파일 객체 생성
String file = (String)files.nextElement(); //해당되는 파일
filename = multi.getFilessystemName(file); //해당 파일명
ParameterBlock pb = new ParameterBlock(); //작업공간 객체 생성
pb.add(imagePath+"/sm_"+filename); //작업공간에 새이름으로 썸네일 생성
RenderdOp rOp=JAI.create("fileload",pb); //PlanarImage클래스 상속, 이미지에 방금수행된 연산의 정보를 포함.
JAI.create("fileload",pb)로부터 RendereOp객체가 리턴이 되면 RenderedOp 클래스의 planarImage클래스의 getBufferedImage() 메소드로부터 BufferedImage 객체를 얻어 올수 있다. BufferedImage객체를 사용해서 메모리에 이미지를 생성한 후 그 이미지를 화면에 표출할수 있고, 파일로 저정 가능하다.
BufferedImage bi = rOp.getAsBufferdImage();
BufferedImage thumb=new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics2d g = thumb.createGraphics();
g.drawImage(bi,0,0,100,100,null);
File file = new FIle(imagePath+"\sm_"+filename);
ImageIO.write(thumb,"JPG",file);
-원본 이미지 <br>
<img src="../image/<%=filename%>">
<p/>
-썸네일 이미지<br>
<img src="../image/sm_<%=filename%>">