자바에서 Java Advanced Imaging 클래스를 제공한다.
사이트는 https://jai-imageio.dev.java.net/ 여긴데 다운로드를 뒤져봐도
api 명세에 있는 javax.media.jai.JAI 클래스를 찾을수가 없더라...
그래서 따로 검색...
JAI apidocs는 http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/index.html 에서 볼 수 있다.
그럼, 간단하게 이미지를 리사이즈하는 방법을 알아보자,
ParameterBlock pb = new ParameterBlock();
pb.add("source_image.jpg");
RenderedOp rOp = JAI.create("fileload", pb);
JAI.create()의 두번째 인자로 각각을 넣어줄 수도 있지만 JAI 1.1 이후 deprecated되었으므로 ParameterBlock를 생성하여 넘기는 방법을 쓰자,
생성한 ParameterBlock객체에 .add로 파일명을 넣어주면 된다.
BufferedImage im = rOp.getAsBufferedImage();
입력 파일에 대해 BufferedImage형식으로 받아오고,
BufferedImage thumb = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
썸네일(리사이즈)이미지를 위한 공간을 만든다. 50,50은 width, height되겠다.
Graphics2D g2 = thumb.createGraphics();
g2.drawImage(im, 0, 0, 50, 50, null);
썸네일 버퍼공간에 대해 Graphics2D객체를 얻어와서 입력이미지에 있는 내용을 그린다.(0,0위치에 50,50크기로 복사)
File outfile = new File("thumb.jpg");
ImageIO.write(thumb, "jpg", outfile);
출력파일에 대한 객체를 만들고 ImageIO.write로 출력.
이미지 리사이즈 이외에도 입력 이미지를 BufferedImage형식으로 받아올 수 있기 때문에
이미지에 대한 작업이 전반적으로 가능하다.
참고로 각 필요 클래스의 위치는 다음과 같다.
java.io.File
java.awt.Graphics2D
java.awt.image.BufferedImage
javax.imageio.ImageIO
javax.media.jai.JAI
javax.media.jai.RenderedOp
JAI클래스들은 첨부파일을 다운받아 압축을 풀면 나오는 세 jar파일을 jdk홈/jre/lib/ext에 넣으면 된다.
톰캣에서 서비스를 위해서는 톰캣홈/common/lib에 마찬가지로 복사
'Knowledge > WebProgramming' 카테고리의 다른 글
주민등록번호 체크 스크립트 (0) | 2007.10.24 |
---|---|
톰캣 환경설정 (0) | 2007.09.27 |
Flash로 파일업로드하기 (0) | 2007.05.25 |
CDO "SendUsing"구성값이 잘못되었습니다 에러 (0x80040220) (0) | 2007.05.02 |
ASP에서 XML생성하기 (0) | 2007.04.04 |