자바에서 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에 마찬가지로 복사


'Dev > JAVA' 카테고리의 다른 글

Spring framework 설치  (0) 2012.11.25
자바 데몬(daemon) 만들기  (0) 2011.06.09
Java Simple Daemon  (0) 2011.06.05
자바 이미지 사이즈 추출 예제  (0) 2011.04.23

+ Recent posts