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

Pillow(PIL)를 활용해 Tkinter 캔버스에 이미지 삽입하는 방법

파이썬의 Pillow 라이브러리는 이미지 처리에 필요한 기본적인 기능을 모두 갖추고 있습니다. 오픈소스로 공개된 이 라이브러리는 다양한 형식의 이미지를 불러오고, 편집하고, 조작할 수 있도록 지원합니다.

이 글에서는 간단한 예제를 통해 Pillow 패키지(PIL)를 사용하여 Tkinter 캔버스(Canvas) 위젯에 이미지를 삽입하는 방법을 살펴보겠습니다.

구현 단계

다음 순서대로 진행하면 됩니다.

  1. 필요한 라이브러리를 임포트하고 tkinter 프레임의 인스턴스를 생성합니다.
  2. root.geometry() 메서드로 프레임의 크기를 설정합니다.
  3. Canvas() 함수로 캔버스 위젯을 만들고 width(너비)와 height(높이)를 지정합니다.
  4. Image.open()으로 이미지 파일을 연 뒤, ImageTk.PhotoImage()를 사용해 PIL 이미지 객체로 변환합니다. 변환된 이미지는 변수 img에 저장합니다.
  5. canvas.create_image() 메서드를 호출하여 캔버스에 이미지를 추가합니다.
  6. 마지막으로 애플리케이션 창의 mainloop를 실행합니다.

예제 코드

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

# tkinter 프레임 인스턴스 생성
root = Tk()

# 프레임 크기 설정
root.geometry("700x450")

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

# 이미지 불러오기
img = ImageTk.PhotoImage(Image.open("camels.jpg"))

# 캔버스에 이미지 추가
canvas.create_image(250, 250, anchor=CENTER, image=img)

root.mainloop()

실행 결과

위 코드를 실행하면 다음과 같은 출력 창이 나타납니다. 캔버스 중앙(좌표 250, 250)을 기준으로 지정한 이미지가 표시되는 것을 확인할 수 있습니다.

Pillow(PIL)를 활용해 Tkinter 캔버스에 이미지 삽입하는 방법

참고 사항

  • Pillow가 설치되어 있지 않다면 pip install pillow 명령어로 먼저 설치해야 합니다.
  • ImageTk.PhotoImage 객체는 반드시 전역 변수나 다른 방식으로 참조를 유지해야 합니다. 그렇지 않으면 가비지 컬렉션에 의해 이미지가 사라질 수 있습니다.
  • anchor=CENTER 옵션은 지정한 좌표를 이미지의 중심으로 삼아 배치한다는 의미입니다. 기본값은 NW(왼쪽 상단 기준)입니다.