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

Python tkinter 캔버스에 PNG 이미지를 그리는 방법

Python의 tkinter에서 이미지를 다루려면 PIL(Pillow) 라이브러리를 활용하는 것이 가장 좋습니다. Pillow는 다양한 이미지 형식(JPG, PNG, GIF 등)을 지원하며, 이미지를 열고 변환하고 조작할 수 있는 다양한 내장 함수를 제공합니다.

캔버스(Canvas) 위젯에 이미지를 표시하려면 create_image(x, y, image, **options) 생성자를 사용해야 합니다. 이 메서드에 Image 객체를 전달하면 지정한 좌표 위치에 이미지가 캔버스에 나타납니다.

예제 코드

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

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

# 윈도우 크기 설정
win.geometry("700x600")

# 캔버스 위젯 생성
canvas = Canvas(win, width=700, height=600)
canvas.pack()

# 이미지 로드
img = ImageTk.PhotoImage(file="Monalisa.png")

# 캔버스에 이미지 추가
canvas.create_image(350, 400, image=img, anchor="center")

win.mainloop()

실행 결과

위 코드를 실행하면 캔버스 안에 이미지가 포함된 윈도우가 화면에 나타납니다.

주요 포인트 정리

  • Pillow 설치: Pillow 라이브러리가 설치되어 있어야 합니다. 터미널에서 pip install pillow 명령으로 설치할 수 있습니다.
  • ImageTk.PhotoImage: PIL 이미지 객체를 tkinter에서 사용할 수 있는 PhotoImage 객체로 변환합니다. 파일 경로를 직접 전달할 수도 있습니다.
  • anchor 옵션: 기본값은 "nw"(왼쪽 상단)이며, "center"로 지정하면 이미지 중심이 해당 좌표에 위치하게 됩니다.
  • 참조 유지: PhotoImage 객체는 반드시 변수에 저장하여 참조를 유지해야 합니다. 그렇지 않으면 가비지 컬렉션으로 인해 이미지가 사라질 수 있습니다.