본문 바로가기

자바 ImageIcon 크기 조절하는 방법

 

 

흔히 우리가 ImageIcon을 이용해서

작업을 하다 보면 이미지의 크기가 내가 설정한 화면의 

크기보다 커서 화면 안에 다 보이지 않는 경우가 있습니다.

 

 

현재 제가 화면안에 넣고 싶은 사진은

위의 꽃 그림입니다.

 

 

ImageIcon을 생성하고

이 안에 바로 flower.jpg를 넣어줍니다.

그리고 JLabel 을 생성하고 이미지를 생성한

icon을 넣어주고 바로 화면을 올립니다.

하지만 여기서 flower.jpg의 해상도가

제가 만든 Size(500,500)보다 크기 때문에

제대로 된 그림이 화면안에 나오지가 않습니다.

이런 경우에는 ImagIcon을 Image로 변환하고

Image의 Size를 조절하고 다시 이를 ImageIcon으로 변환하여

화면에 올리면 올바르게 사진이 나타나게 됩니다.

말로는 이해하기가 힘드니깐

코드로 바로 보여드리겠습니다.

 

 

getScaledInstance(가로 크기, 세로 크기, 변환 방법);

 

ImageIcon 변수명 = new ImageIcon("이미지 파일");

Image img = icon.getImage();

Image changeImg =

img.getScaledInstance(500,500,

Image.SCALE_SMOOTH);

이렇게 코드를 수정하고 새롭게

실행을 하게 되면 이미지가

제가 설정한 창의 크기와 동일하게

출력되게 됩니다.

 

 

그럼 여기까지

자바 ImageIcon 크기 조절하는 방법에

대해서 알아보았습니다.

 

부족한 글 읽어주셔서

감사합니다.

 

package Flower;

import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ChangeImageSize extends JFrame {
	
	public ChangeImageSize() {
		
		ImageIcon icon = new ImageIcon("flower.jpg");
		
		Image img = icon.getImage();
		// 창의 사이즈인 500,500에 맞춰서 이미지를 변경
		Image changeImg = img.getScaledInstance(500, 500, Image.SCALE_SMOOTH);
		ImageIcon changeIcon = new ImageIcon(changeImg);
		JLabel lbl = new JLabel(changeIcon);
		
		//SCALE_DEFAULT, SCALE_FAST, SCALE_SMOOTH, SCALE_REPLICATE, SCALE_AREA_AVERAGING
		
		add(lbl);
		setTitle("Flower");
		setSize(500,500);
		setVisible(true);
		
	}
	
	public static void main(String[] args) {
		new ChangeImageSize();
	}
}

93 DL

Develop Life