Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 프레임에 이미지를 배치하는 방법

Tkinter 애플리케이션을 개발하다 보면 프레임(Frame) 안에 이미지를 삽입해야 하는 경우가 자주 있습니다. 이 글에서는 Pillow(PIL) 라이브러리를 활용해 Tkinter 프레임에 이미지를 손쉽게 배치하는 방법을 단계별로 알아보겠습니다.

구현 단계

  • 필요한 라이브러리를 임포트하고 tkinter 윈도우(프레임)의 인스턴스를 생성합니다. 이미지를 불러와 프레임 안에 표시하기 위해 Pillow(PIL) 라이브러리를 사용합니다.

  • geometry() 메서드를 사용해 윈도우의 크기를 지정합니다.

  • 프레임을 생성하고 가로·세로 크기를 설정한 뒤, place() 메서드에 anchor='center' 옵션을 적용하여 프레임을 창의 정중앙에 배치합니다.

  • ImageTk.PhotoImage(Image.open("image")) 구문을 사용해 이미지 파일을 열고 Tkinter에서 사용할 수 있는 형태로 변환합니다.

  • 프레임 내부에 Label 위젯을 생성하고, 해당 레이블에 이미지 객체를 전달합니다.

  • 마지막으로 mainloop()를 호출하여 애플리케이션 창을 실행합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from PIL import ImageTk, Image

# tkinter 윈도우 인스턴스 생성
win = Tk()

# 윈도우 크기 정의
win.geometry("700x500")

frame = Frame(win, width=600, height=400)
frame.pack()
frame.place(anchor='center', relx=0.5, rely=0.5)

# tkinter ImageTk 객체 생성
img = ImageTk.PhotoImage(Image.open("forest.jpg"))

# 텍스트 또는 이미지를 표시할 Label 위젯 생성
label = Label(frame, image = img)
label.pack()

win.mainloop()

실행 결과

위 코드를 실행하면 700x500 크기의 윈도우가 열리고, 창의 정중앙에 프레임이 배치된 후 그 안에 지정한 이미지(forest.jpg)가 표시됩니다.

Tkinter 프레임에 이미지를 배치하는 방법

핵심 포인트 정리

  • Tkinter는 기본적으로 PNG, GIF 형식만 지원하므로 JPG 등 다른 형식의 이미지를 사용하려면 Pillow 라이브러리가 반드시 필요합니다.
  • relx=0.5, rely=0.5anchor='center' 조합은 요소를 부모 컨테이너의 정중앙에 배치하는 가장 간편한 방법입니다.
  • 이미지 객체는 전역 변수 또는 참조가 유지되는 변수에 저장해야 합니다. 그렇지 않으면 가비지 컬렉션에 의해 이미지가 사라질 수 있습니다.