学习笔记python-图片拆分

可将图片等分为指定等分,自动存储在原目录下的文件夹中,可用于电子签章骑缝章等。

效果如下:

原图
存储目录
拆分后
控制台

代码

from PIL import Image as imim
import os
import time
from tkinter import *
import tkinter.filedialog
from tkinter import messagebox as msgbox
def xz():
    #选择图片
    img_path=tkinter.filedialog.askopenfilename()
    #判断是否选择
    if img_path != '':
        print (img_path)#图片路径
        #分割成1行
        img_split_row = 1      #行数
        #分割成几列
        sp=input('拆成几份:')#输入拆分列数量
        img_split_col = int(sp)
        #要保存的图片路径(保存为png图片格式)
        if os.path.dirname(img_path) == "" :
            img_path = os.getcwd()+"//"+img_path
        img_save = os.path.dirname(img_path)+"//图片分割-"+os.path.splitext(os.path.basename(img_path))[0]+"//"
        if not os.path.exists(img_save):
            os.makedirs(img_save)
        #分割图片
        img_ext_name = os.path.splitext(os.path.basename(img_path))[1]
        img_now = imim.open( img_path )
        split_size_w = int( img_now.size[0]/img_split_col )
        split_size_h = int( img_now.size[1]/img_split_row )
        for r in range(img_split_row):
            for c in range(img_split_col):
                split_area = ( split_size_w*c, r*split_size_h, split_size_w*(c+1), split_size_h*(r+1) )
                #print( (r*img_split_col+c+1) );
                img_now.crop(split_area).save(img_save+str(r*img_split_col+c+1)+img_ext_name)
                time.sleep(0.5) #等待
        #结束
        print("图片分割结束,一共"+str(img_split_row*img_split_col)+"张图片(保存在"+img_save)

    else:
         msgbox.showwarning('操作警示', '未选择文件')

root = Tk()
root.title("图片拆分")
root.geometry('300x200+100+100')
btn=Button(root,text='选择要拆分的图片',command=xz)
btn.pack()
root.mainloop()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容