Python 3 은 tkinter 와 PIL 로 그림 보기 도 구 를 실현 합 니 다.

1541 단어 Python3tkinterPIL
수요
그림 보기 도 구 를 만 들 려 면 jpg,png 등 일반적인 형식 을 지원 해 야 합 니 다.그러나 tkinter 는 순수한 GUI 라 이브 러 리 로 GTK,QT 처럼 크 고 완전 하지 않 기 때문에 gif 와 ppm 두 가지 형식 만 지원 합 니 다.한계 가 많 습 니 다.이미지 처리 라 이브 러 리 를 조합 해 야 기본 적 인 그림 보기 기능 을 실현 할 수 있 습 니 다.
python 생태계 에서 가장 많이 사용 되 는 이미지 처리 라 이브 러 리 는 PIL 입 니 다.
Python 3 라 이브 러 리 설치
이 두 라 이브 러 리 는 python 3 에서 python 2 와 어느 정도 차이 가 있 습 니 다.
tkinter 이니셜 소문 자로 바 뀌 었 어 요.
PIL 공식 은 아직 Python 3 를 지원 하지 않 지만 Pillow 라 는 포크 가 있 습 니 다.공식 을 대체 할 수 있 고 인터페이스 가 변 하지 않 습 니 다.pip install Pillow 설치 가 필요 합 니 다.
기술 원리
그러면 PIL 이 jpg 파일 을 읽 고 생 성 된 메모리 대상 을 tkinter 에 어떻게 처리 합 니까?PIL 개발 자 들 은 tkinter 가방 에 있 는 동명 의 인터페이스 와 호 환 되 는 PhotoImage 류 를 제공 하여 PIL 이 생 성 한 PhotoImage 대상 을 tkinter 에 직접 부여 하여 PhotoImage 가 들 어 갈 수 있 는 모든 컨트롤(예 를 들 어 Label,Canvas 등)을 받 을 수 있 습 니 다.
코드 예제

#encoding=utf-8
import tkinter as tk
from PIL import Image, ImageTk

class App(tk.Frame):
  def __init__(self, master=None):
    super().__init__(master, width=400, height=300)
    self.pack()
    self.pilImage = Image.open("CSDN.png")
    self.tkImage = ImageTk.PhotoImage(image=self.pilImage)
    self.label = tk.Label(self, image=self.tkImage)
    self.label.pack()

  def processEvent(self, event):
    pass

if __name__ == '__main__':
  root = tk.Tk()
  app = App(root)
  root.mainloop()
최종 디 스 플레이 효과

좋은 웹페이지 즐겨찾기