일반적으로 웹화면에서 이미지태그의 가로/세로를 지정합니다.
화면에 일정하게 보여줘야하는 이미지인경우
어떤이미지는 크고, 작고...
뒤죽박죽이면 안되기 때문입니다.
작은 사이즈의 넓이,높이를 고정하는거는
이미지만 깨질뿐 속도에는 별 영향이 없는걸로 알고있습니다.
그 반대로 큰 이미지를 작은 사이즈로 구겨넣으려고 할 경우 버벅거릴 경우가 존재합니다
이럴 경우를 위하여 큰사이즈의 이미지를 축소하는 작업이 필요합니다.
썸네일생성이라고 하는데 이부분에 대하여 간단하게 구현을 해보도록 하겠습니다.
위 이미지를 가지고 썸네일을 만들어볼까 합니다
위치 + 경로는 ("D:\original_image.jpg") 입니다.
용량이 1MB이상이고 크기는 1936 x 1296 입니다.
해당 이미지를 가로(100) X 세로(100) 사이즈로 구겨 넣을 경우
보기도 않좋고 상당히 느리게 로딩이 됩니다.
(물론 네트워크 환경에 따라서 그럴수도 아닐수도 있습니다 ^^;;)
그럼 썸네일 코드를 작성해보도록 하겠습니다.
JDK1.6 이상 사용가능한 코드로 알고있습니다. ^^
패키지명 - com.thumbnail
클래스명 - Thumbnail
public class Thumbnail { public static void main(String args[]){ try { //썸네일 가로사이즈 int thumbnail_width = 100; //썸네일 세로사이즈 int thumbnail_height = 100; //원본이미지파일의 경로+파일명 File origin_file_name = new File("D:"+File.separator+"original_image.jpg"); //생성할 썸네일파일의 경로+썸네일파일명 File thumb_file_name = new File("D:"+File.separator+"thumbnail_image.jpg"); BufferedImage buffer_original_image = ImageIO.read(origin_file_name); BufferedImage buffer_thumbnail_image = new BufferedImage(thumbnail_width, thumbnail_height, BufferedImage.TYPE_3BYTE_BGR); Graphics2D graphic = buffer_thumbnail_image.createGraphics(); graphic.drawImage(buffer_original_image, 0, 0, thumbnail_width, thumbnail_height, null); ImageIO.write(buffer_thumbnail_image, "jpg", thumb_file_name); System.out.println("썸네일 생성완료"); } catch (Exception e) { e.printStackTrace(); } } }
생성된 썸네일 파일을 한번 보도록 할까요?
이미지 사이즈를 줄인것도 아니고 순수하게 위 코드를 이용하여 생성한 파일입니다.
1MB가 됐던 파일이 위 코드를 통하여 5KB로 줄었고
사이즈 역시 100 x 100으로 생성이 되었습니다.
프로젝트에 유용하게 사용하시길 ^^
by 개발로짜
POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기 (1) | 2014.10.07 |
---|---|
DTO,VO에 정의되어있는 변수명 및 갯수에 관계없이 변수명과 value값 한방에 가져오기 (0) | 2014.10.07 |
Map객체의 key값을 읽어서 value값 한번에 추출하기 (0) | 2014.10.07 |
JSTL의 c:forTokens을 이용하여 확장자명 찾기 (0) | 2014.10.06 |
JSON 라이브러리를 이용하여 object생성과 문자열을 object형으로 변환해보기 (0) | 2014.10.06 |