
⬇ 클래스패스로부터 이미지를 반환해주는 메서드
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로 읽고 쓸 수 있음