본문 바로가기

Language/Java / JSP

[JSP] 썸네일 이미지 생성하기(이미지 리사이즈 저장)

반응형

웹 서비스를 하다보면 이미지들을 화면에서 보여줄때가 많다.
특히 메인화면 이라던지 리스트 화면 같은경우에 이미지들이 많이 쓰일때가 종종 있는데,
이때 사이즈가 큰 원본이미지를 사용하는것 보다는 별도의 썸네일 이미지를 생성하여 사용하는게 좋다.

썸네일 이미지를 생성하여 화면에 보여주게 되면 페이지 자체가 가벼워 지므로 서버 부하가 줄어든다는 장점이 있으며

사용자는 덩치 큰 이미지를 내려받는데 시간을 소비하기 보다는 작은 이미지를 내려받음으로서
더 빠른 페이지 로딩을 할 수 있다.

나 같은경우 사용자가 이미지를 업로드할때 서버에 이미지 저장 처리를 하면서 썸네일 이미지를 별도로 만든다.
즉 사용자는 1장의 이미지를 올리게 되지만 서버쪽에서는 원본 1장, 썸네일 1장을 가지게 된다.

리스트 화면에서는 썸네일 이미지를 보여주고 상세화면에서는 원본이미지를 컨트롤하여 사용자에게 보여준다.

썸네일 이미지를 생성하는 방법은 몇가지 있지만 나는 주로 가장 간단하게 사용할 수 있는 Jimi 라이브러리를 이용한다.


라이브러리 다운

 

JimiProClasses.jar



다운받은 라이브러리는 /WEB-INF/lib 에 넣는다.


썸네일 생성 예

<%@ page language="java" contentType="text/html; charset=UTF-8" %>

<%@page import="java.awt.Image"%>
<%@page import="com.sun.jimi.core.Jimi"%>
<%@page import="com.sun.jimi.core.JimiException"%>
<%@page import="com.sun.jimi.core.JimiUtils"%>


<%

	// 원본 이미지
	String orgFile = "C:/image/test.jpg" ;

	// 썸네일 이미지
	String thumbFile = "C:/image/test_thumb.jpg"

	// 썸네일 이미지 가로크기(단위 : px)
	int thumbWidth = 320 ;

	// 썸네일 이미지 세로크기(단위 : px)
	int thumbHeight = 160 ;

	try{

		// 썸네일 설정
		Image thumbnail = JimiUtils.getThumbnail(orgFile, thumbWidth, thumbHeight, Jimi.IN_MEMORY);

		// 썸네일 생성
		Jimi.putImage(thumbnail, thumbFile);


	}catch(Exception e){
		e.printStackTrace();
	}


%>





Jimi 라이브러리를 이용할때의 단점은 GIF 이미지는 썸네일 생성을 하지 못한다.
이유는 GIF 자체의 라이센스 문제때문이라고 어디선가 본듯 하다.