클래스패스에서 이미지 불러오기 (BufferedImage 활용)

heeezni·2025년 6월 4일

Java GUI 프로젝트

목록 보기
10/20
post-thumbnail

⬇ 클래스패스로부터 이미지를 반환해주는 메서드

public class ImageUtil {
    public Image getImage(String filename, int width, int height) {
    
    	// 패키지 경로로부터 이미지 얻어오기 - URL로 이미지 얻어와야 함
        // 클래스패스 기준으로 리소스 접근 (예: resources/"images/패션.jpg")
        URL url = this.getClass().getClassLoader().getResource(filename); 
        										 //getResource()가 URL반환
        Image img = null;
        try {
        	// BufferedImage로 읽고, 원하는 크기로 리사이징
            BufferedImage buffrImg = ImageIO.read(url);
            img = buffrImg.getScaledInstance(width, height, Image.SCALE_SMOOTH);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return img;
    }

클래스패스로 잡힌 resources 패키지 하위의
filename만 가져오면 됨

🗂 src > main > folder명 resources


Toolkit은 이미지 구성하는 바이트 정보 접근 불가 - 잘 안씀

BufferedImage객체 (ImageIO.read(URL)로 얻은 객체)를
이용하여 얻어온 이미지는 훨씬 더 다양한 제어 가능

✅ ImageIO란?
ImageIO는 Java에서 이미지를 파일로부터 읽고, 파일로 저장하는 기능을 제공하는 클래스

javax.imageio.ImageIO 클래스

ImageIO.read(...), ImageIO.write(...) 메서드를 사용해
이미지 파일을 BufferedImage로 읽고 쓸 수 있음

profile
아이들의 가능성을 믿었던 마음 그대로, 이제는 나의 가능성을 믿고 나아가는 중입니다.🌱

0개의 댓글