01.JAVA/Java2009. 1. 19. 13:38
반응형

썸네일 이미지 만들기

Java SDK1.4부터 Image I/O API가 추가되었다.


############################################
# 이미지 파일 읽어오기
############################################


javax.imageio.ImageIO 클래스가 제공하는 read()메소드를 이용한다.

BufferedImage read(File input)
BufferedImage read(InputStream input)
BufferedImage read(URL input)

File file = new File("c:\\image\\good.gif")
BufferedImage image = imageIO.read(file)

FileInputStream input = new FileInputStream("c:\\image\\good.gif")
BufferedImage image = imageIO.read(input)

URL logUrl = new URL("http://www.xxx.com/main/xxx.gif")
BufferedImage logoImage = imageIO.read(logUrl)



############################################
# 썸네일 이미지 만들기
############################################


1. ImageIO.read()메소드를 이용하여 BufferedImage에 저장한다.(원본)
2. 변경할 크기를 갖는 새로운 BufferedImage 객체를 생성한다.
3. 대상 BufferedImage객체의 createGraphics()메소드를 호출하여 대상 BufferedImage에 그림을 그릴 수 있는 Graphics2D 객체를 구한다.
4. Graphics2D 객체를 사용하여 원본 BufferedImage를 대상 BufferedImage에 그린다. 이때 크기를 조절한다.


BufferedImage srcimg = imageIO.read(imgFile);
BufferedImage destimg = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = srcImg.createGraphics();
g.drawimage(srcImg, 0, 0, width, height, null);



###########################################
# BufferedImage를 파일로 저장하기
###########################################


imageIO.write()메소드를 통해서 BufferedImage를 출력할 수 있다.

write(RenderedImage im, String formatName, File output)
write(RenderedImage im, String formatName, OutputStream output)

formatName : PNG png, jpeg JPEG jpg JPG



###########################################
# 이미지크기를 변경
###########################################


boolean isResult = false;

FileInputStream srcls = null;
srcls = new FileInputStream("c:\\sample.gif");

BufferedImage srcimg = ImageIO.read(srcls);
BufferedImage destimg = new BufferedImage(30, 30, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = destimg.createGraphics();
g.drawImage(srcimg, 0, 0, 30, 30, null);

File dest = new File("c:\\thum2_sample.jpg");
isResult = ImageIO.write(destimg, "jpg", dest);

if (isResult)
{
 out.println("Image변환 성공");
}

Posted by 1010