728x90
내부 함수
from tkinter import *
from PIL import ImageTk, Image
from tkinter import filedialog
from tkinter import messagebox
from openpyxl import load_workbook
wbf ='db_gen_v5.xlsx'
wb = load_workbook(wbf) # 경로는 꼭 "/"로
wbs = wbf
sheet = wb['login_size_position'] #시트이름은 정확히
csz_x = sheet['e7'].value
csz_y = sheet['f7'].value
res_r = sheet['b11'].value
files_im_s="jpg 파일을 선택해 주세요!^^"
files_im=sheet['b12'].value
image_choice_n=sheet['b13'].value
gui_open_n=sheet['b14'].value
def choose_image():
global image_choice_n
image_choice_n+=1
sheet['b13']=image_choice_n
wb.save(wbs)
file_name1 = filedialog.askopenfilename(initialdir='path', title='select file',
filetypes=(('Jpg Files', '*.jpg'),('PNG Files', '*.png'),('all files', '*.*')))
global files_im
files_im=file_name1
if files_im == '':
messagebox.showwarning("경고", "파일을 추가 하세요")
input_entry1.delete(0.0, END)
input_entry1.insert(INSERT,files_im)
def change_image():
sheet['B12']=files_im
wb.save(wbs)
scr1 = Image.open(str(files_im))
resize_scr1=scr1.resize((int(scr1.width / int(float(res_r))), int(scr1.height / int(float(res_r)))))
Deathwing3=ImageTk.PhotoImage(resize_scr1)
if image_choice_n==1:
CanV=canv.create_image(10, 10, anchor=NW, image=Deathwing3)
canv.image_names = Deathwing3
else:
canv.delete("all")
CanV=canv.create_image(10, 10, anchor=NW, image=Deathwing3)
canv.itemconfigure(CanV, image=Deathwing3)
canv.image_names = Deathwing3
def canvas_size(): # 캔버스 사이즈
sheet['e7']=e6.get()
sheet['f7']=e7.get()
wb.save(wbs)
# canv = Canvas(fretext_master, width=e6.get(), height=e7.get(), bg='white')
canv.configure(width=e6.get(), height=e7.get(), bg='white')
canv.pack(fill=BOTH,expand=YES)
def image_size(): # 이미지사이즈
sheet['B11']=r2.get()
wb.save(wbs)
scr1 = Image.open(str(files_im))
resize_scr1=scr1.resize((int(scr1.width / int(float(r2.get()))), int(scr1.height / int(float(r2.get())))))
Deathwing3=ImageTk.PhotoImage(resize_scr1)
if image_choice_n==1:
CanV=canv.create_image(10, 10, anchor=NW, image=Deathwing3)
canv.image_names = Deathwing3
else:
canv.delete("all")
CanV=canv.create_image(10, 10, anchor=NW, image=Deathwing3)
canv.itemconfigure(CanV, image=Deathwing3)
canv.image_names = Deathwing3
외형
fretext_master=LabelFrame(tab2, text='SecretCard')
fretext_master.grid(column=0, row=0, padx=8, pady=4)
canv = Canvas(fretext_master, width=csz_x, height=csz_y, bg='white')
canv.pack(fill=BOTH,expand=YES)
gui_open_n+=1
sheet['b14']=gui_open_n
wb.save(wbs)
if image_choice_n==0:
pass
else:
scr = Image.open(str(files_im))
resize_scr=scr.resize((int(scr.width / int(float(res_r))), int(scr.height / int(float(res_r)))))
Deathwing3=ImageTk.PhotoImage(resize_scr)
CanV=canv.create_image(10, 10, anchor=NW, image=Deathwing3)
ser_canvas_image_size=LabelFrame(tab2, text='canvas size')
ser_canvas_image_size.grid(column=0, row=1, padx=8, pady=5)
lbID=Label(ser_canvas_image_size, text="사이즈:",width=7).grid(column=0, row=0,sticky='W')
e6=Entry(ser_canvas_image_size,width=7)
e6.grid(column=1, row=0,sticky='W')
e6.insert(0,csz_x)
lbID2=Label(ser_canvas_image_size, text="X",width=2).grid(column=2, row=0,sticky='W')
e7=Entry(ser_canvas_image_size,width=7)
e7.grid(column=3, row=0,sticky='W')
e7.insert(0,csz_y)
lbID4=Label(ser_canvas_image_size, text="",width=1).grid(column=4, row=0,sticky='W')
b1 = Button(ser_canvas_image_size,text="변경",width=8,command=canvas_size).grid(column=5, row=0,sticky='W')
ser_file=LabelFrame(tab2, text='change image')
ser_file.grid(column=0, row=2, padx=8, pady=5)
chlb=Label(ser_file, text="파일선택:",width=8).grid(column=0, row=0,sticky='W')
input_entry1= Text(ser_file, height=2, width=34, wrap=WORD)
input_entry1.grid(column=1,columnspan=3, row=0,sticky='W')
if image_choice_n==0:
input_entry1.insert(INSERT,files_im_s)
else:
input_entry1.insert(INSERT,files_im)
lbID4=Label(ser_file, text="",width=1).grid(column=4, row=0,sticky='W')
b1 = Button(ser_file,text="선택",height=2,width=9,command=choose_image).grid(column=2, row=1,sticky='E')
b2 = Button(ser_file,text="변경",height=2,width=9,command=change_image).grid(column=3, row=1,sticky='E')
resize_master=LabelFrame(ser_file, text='resize_image')
resize_master.grid(columnspan=2, row=1, padx=3, pady=3)
lbID=Label(resize_master, text="조정\n(원본/n)",width=7).grid(column=0, row=0,sticky='W')
r2=Entry(resize_master,width=4)
r2.grid(column=1, row=0,sticky='W')
r2.insert(0,res_r)
lbID4=Label(resize_master, text="",width=1).grid(column=2, row=0,sticky='W')
b1 = Button(resize_master,text="수정",width=7,command=image_size).grid(column=3, row=0,sticky='W')
728x90
반응형
'python_GUI' 카테고리의 다른 글
특정위치클릭 (0) | 2023.01.29 |
---|---|
이미지포맷확인 (0) | 2023.01.29 |
엑셀DB검색 (0) | 2023.01.29 |
구글시트연동 (0) | 2023.01.29 |
GUI_위치&사이즈변경 (0) | 2023.01.29 |