출처 : 반크_독도2023
참고풀이]
from PIL import Image, ImageTk, ImageFilter
import tkinter as tk
from tkinter import filedialog as fd
im = None
tk_img = None
# 파일 메뉴에서 “열기”를 선택하였을 때 호출되는 함수
def open():
global im, tk_img
fname = fd.askopenfilename()
im = Image.open(fname)
tk_img = ImageTk.PhotoImage(im)
canvas.create_image(250, 250, image=tk_img)
window.update()
# 파일 메뉴에서 “종료”를 선택하였을 때 호출되는 함수
def quit():
window.quit()
# 영상처리 메뉴에서 “영상회전”을 선택하였을 때 호출되는 함수
def image_rotate():
global im, tk_img
out = im.rotate(45)
tk_img = ImageTk.PhotoImage(out)
canvas.create_image(250, 250, image=tk_img)
window.update()
# 영상처리 메뉴에서 “영상흐리게”를 선택하였을 때 호출되는 함수
def image_blur():
global im, tk_img
out = im.filter(ImageFilter.BLUR)
tk_img = ImageTk.PhotoImage(out)
canvas.create_image(250, 250, image=tk_img)
window.update()
# 영상처리 메뉴에서 “영상을 흑백으로”를 선택하였을 때 호출되는 함수
def image_blackNwhite():
global im, tk_img
out = im.convert("L")
tk_img = ImageTk.PhotoImage(out)
canvas.create_image(250, 250, image=tk_img)
window.update()
# 윈도우를 생성한다.
window = tk.Tk()
canvas = tk.Canvas(window, width=500, height=500)
canvas.pack()
# 메뉴를 생성한다.
menubar = tk.Menu(window)
filemenu = tk.Menu(menubar)
ipmenu = tk.Menu(menubar)
filemenu.add_command(label="열기", command=open)
filemenu.add_command(label="종료", command=quit)
ipmenu.add_command(label="영상회전", command=image_rotate)
ipmenu.add_command(label="영상흐리게", command=image_blur)
ipmenu.add_command(label="영상을 흑백으로", command=image_blackNwhite)
menubar.add_cascade(label="파일", menu=filemenu)
menubar.add_cascade(label="영상처리", menu=ipmenu)
window.config(menu=menubar)
window.mainloop()
참고풀이 결과]
시작화면)
이미지 열기)
영상회전)
영상흐리게)
영상을 흑백으로)
대한민국의 아름다운 영토, 독도의 가을
'프로그램 > Python 1000제' 카테고리의 다른 글
Python 328제] 버블정렬 (0) | 2024.10.31 |
---|---|
Python 327제] 두근두근 파이썬(개정판) CHAPTER 13 연습문제 4 p397 (0) | 2024.10.28 |
Python 325제] 두근두근 파이썬(개정판) CHAPTER 11 연습문제 7 p361 (0) | 2024.10.19 |
Python 324제] 두근두근 파이썬(개정판) CHAPTER 11 연습문제 6 p361 (0) | 2024.10.14 |
Python 323제] 두근두근 파이썬(개정판) CHAPTER 11 연습문제 5 p360 (0) | 2024.10.14 |
댓글