ミスデザイナーは、シーケンス図をすばやくセグメント化するように依頼しました
#! /usr/bin/env python
# - *- coding: utf-8-*-
# @ Time :2020/11/1812:51
# @ Author : ywy
# @ Platform:from tkinter.filedialog import*import windnd
from tkinter.messagebox import showerror,showinfo
from PIL import Image
def splitimage(src, rownum, colnum):
src =src.strip()
rownum =int(rownum)
colnum =int(colnum)
img = Image.open(src)
w, h = img.size
if rownum <= h and colnum <= w:print('Original image info: %sx%s, %s, %s'%(w, h, img.format, img.mode))print('画像カットの処理を開始します,お待ちください...')
s = os.path.split(src)
fn = s[1].split('.')
basename = fn[0]
ext = fn[-1]
dstpath=basename
if not os.path.exists(dstpath):
os.makedirs(dstpath)
num =0
rowheight = h // rownum
colwidth = w // colnumfor r inrange(rownum):for c inrange(colnum):
box =(c * colwidth, r * rowheight,(c +1)* colwidth,(r +1)* rowheight)
img.crop(box).save(os.path.join(dstpath, f'{basename}_{num}.{ext}'), ext)
num = num +1print('写真がカットされ、合計が生成されます%s小さな写真。'% num)return f'写真がカットされ、合計が生成されます{num}小さな画像が現在のプログラムディレクトリに保存されます{dstpath}フォルダの下'else:print('行と列の切断パラメータが不正です!')return'行と列の切断パラメータが不正です!'
root_1 =Tk()
rownum =StringVar()
colnum =StringVar()
z =StringVar()
root_1.title('ピクチャーカット')
count =Label(root_1, text='切断列の数')
count.grid(row=0, column=0)
enter_1 =Entry(root_1, state='normal', textvariable=rownum,bd=2,width=50)
enter_1.grid(row=0, column=1)
count =Label(root_1, text='切断柱の数')
count.grid(row=1, column=0)
enter_2 =Entry(root_1, state='normal', textvariable=colnum,bd=2,width=50)
enter_2.grid(row=1, column=1)
def dragged_files(files):
src =files[0].decode('gbk')
rownum = enter_1.get()
colnum = enter_2.get()print(src,rownum,colnum)if rownum and colnum:showinfo('促す',splitimage(src,rownum,colnum))else:showerror('错误促す','切断行の数と切断列の数には値が必要です')
count =Label(root_1, text='写真をウィンドウにドラッグアンドドロップします')
count.grid(row=2, column=0)
windnd.hook_dropfiles(root_1,func=dragged_files)
root_1.mainloop()