파이썬 그림확대
조회수 3539회
from tkinter import *
from tkinter.filedialog import *
from tkinter.simpledialog import*
함수 선언 부분
def func_open() :
filename = askopenfilename(parent = window, filetypes = (("GIF 파일", "*.gif"), ("모든 파일", "*.*")))
photo = PhotoImage(file = filename)
pLabel.configure(image = photo)
pLabel.image = photo
def func_exit() :
window.quit()
window.destroy()
def func_zoom() :
value = askinteger("확대배수","확대할 배수를 입력하세요(2~8)",minvalue = 2 ,maxvalue = 6 )
global photo
photo = photo.zoom(value,value) #확대
def func_subsample() :
value = askinteger("축소배수","축소할 배수를 입력하세요(2~8)",minvalue = 2 ,maxvalue = 6 )
global photo
photo = photo.subsample(value,value) #축소
메인 코드 부분
window = Tk()
window.geometry("400x400") window.title("명화 감상하기")
photo = PhotoImage() pLabel = Label(window, image = photo)
pLabel.pack(expand=1, anchor = CENTER)
mainMenu = Menu(window)
window.config(menu = mainMenu)
fileMenu = Menu(mainMenu)
mainMenu.add_cascade(label = "파일", menu = fileMenu)
fileMenu.add_command(label = "파일 열기", command = func_open)
fileMenu.add_separator()
fileMenu.add_command(label = "프로그램 종료", command = func_exit)
filMenu = Menu(mainMenu) #새로운 상위메뉴생성
mainMenu.add_cascade(label = "이미지 효과", menu = filMenu) #상위메뉴 이름
filMenu.add_command(label = "확대하기", command = func_zoom) #하위메뉴 생성
filMenu.add_separator() #하위메뉴사이에 줄생성
filMenu.add_command(label = "축소하기", command = func_subsample) #하위메뉴생성
window.mainloop()
파일을 선택해서 상위메뉴 이미지효과를 누르고 하위메뉴 확대하기나 축소하기를 눌러 메세지박스가 뜨게한후 박스안에 입력한 수만큼 확대하고 싶은데 메세지박스에 숫자를 입력하는것까진 되는데 그후로 확대나 축소가 안됩니다 어느부분에서 잘못된것인지 알려주실수 있을까요
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
파일을 열어오는 func_open()에서도 photo를 global photo로 변수 하나 만들어주시고
func_zoom()과 func_subsample()을
def func_zoom() :
value = askinteger("확대배수","확대할 배수를 입력하세요(2~8)",minvalue = 2 ,maxvalue = 8 ) global photo photo = photo.zoom(value,value) #확대 pLabel.configure(image=photo) pLabel.image=photo
def func_subsample() :
value = askinteger("축소배수","축소할 배수를 입력하세요(2~8)",minvalue = 2 ,maxvalue = 8 ) global photo photo = photo.subsample(value,value) #축소 pLabel.configure(image=photo) pLabel.image=photo
이런식으로 추가해주시면 됩니다. 사진을 늘린다음에 사진을 다시 안그려주셔서 안되는것 같네요
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력