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

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


1번 이미지




2번 이미지




결과 이미지




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

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

아래는 소스입니다.


import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class TestImageMerge {
	public static void main(String[] args) {
		try {
			BufferedImage image1 = ImageIO.read(new File("c:\\image1.gif"));
			BufferedImage image2 = ImageIO.read(new File("c:\\image2.gif"));

			int width = Math.max(image1.getWidth(), image2.getWidth());
			int height = image1.getHeight() + image2.getHeight();

			BufferedImage mergedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
			Graphics2D graphics = (Graphics2D) mergedImage.getGraphics();

			graphics.setBackground(Color.WHITE);
			graphics.drawImage(image1, 0, 0, null);
			graphics.drawImage(image2, 0, image1.getHeight(), null);
			
			ImageIO.write(mergedImage, "gif", new File("c:\\mergedImage.gif"));
			// ImageIO.write(mergedImage, "jpg", new File("c:\\mergedImage.jpg"));
			// ImageIO.write(mergedImage, "png", new File("c:\\mergedImage.png"));
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}

		System.out.println("이미지 합성이 완료되었습니다... 에헤라 디야~~");
	}
}


 

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

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

Posted by Huikyun