一.起因
設計師小姐姐要求快速切分序列圖
二.直接上可視化代碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/18 12: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 =https://www.cnblogs.com/pythonywy/p/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 // colnum
for r in range(rownum):
for c in range(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 + 1
print('圖片切割完畢,共生成 %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 =https://www.cnblogs.com/pythonywy/p/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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/224433.html
標籤:Python
上一篇:基于Spring Cloud Consul的服務注冊與發現
下一篇:1-Python與計算機關系
