Java/Tip & Tech2009. 12. 17. 12:23

업무중 만들었던 Java로 두 이미지를 합하는 소스입니다.


1번 이미지




2번 이미지




결과 이미지




사실 뭐 그냥 별거 아니긴 합니다만 혹시라도 찾으시는 분이 있을지 몰라 올려봅니다.

이거 해보니 Java Image Processing 에 급 관심이 생겼습니다.

아래는 소스입니다.


01.import java.awt.Color;
02.import java.awt.Graphics2D;
03.import java.awt.image.BufferedImage;
04.import java.io.File;
05.import java.io.IOException;
06. 
07.import javax.imageio.ImageIO;
08. 
09.public class TestImageMerge {
10.    public static void main(String[] args) {
11.        try {
12.            BufferedImage image1 = ImageIO.read(new File("c:\\image1.gif"));
13.            BufferedImage image2 = ImageIO.read(new File("c:\\image2.gif"));
14. 
15.            int width = Math.max(image1.getWidth(), image2.getWidth());
16.            int height = image1.getHeight() + image2.getHeight();
17. 
18.            BufferedImage mergedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
19.            Graphics2D graphics = (Graphics2D) mergedImage.getGraphics();
20. 
21.            graphics.setBackground(Color.WHITE);
22.            graphics.drawImage(image1, 0, 0, null);
23.            graphics.drawImage(image2, 0, image1.getHeight(), null);
24.             
25.            ImageIO.write(mergedImage, "gif", new File("c:\\mergedImage.gif"));
26.            // ImageIO.write(mergedImage, "jpg", new File("c:\\mergedImage.jpg"));
27.            // ImageIO.write(mergedImage, "png", new File("c:\\mergedImage.png"));
28.        } catch (IOException ioe) {
29.            ioe.printStackTrace();
30.        }
31. 
32.        System.out.println("이미지 합성이 완료되었습니다... 에헤라 디야~~");
33.    }
34.}


 

ImageIO 클래스는 이미지 파일 읽기, 쓰기 시에 이미지 타입별로 변경할 부분이 거의 없어서 매우 편리하네요.

많이 사용하는 bmp, gif, jpg, png 포맷은 다 지원하는 것으로 보입니다.

Posted by Huikyun