python切割长图为n个小图片

应用场景:有时候使用手机截图了一张特别长的竖长的图,想快速切割成N张小图,使用的是pillow库的image的crop函数,

crop函数有4个参数,是个元组 x1,y1,x2,y2,也就是2个点的坐标,

x1,y1是左上角的点的坐标,x2,y2是右下角的坐标。

一张图片左上角的是x1=0,y1=0

 

import os
from PIL import Image

def cut(img,pages):
    image = Image.open(img)
    w = image.width
    h = int(image.height / pages)
    print(f'这个图像是{image.width} x {image.height}')
    name1,name2 = os.path.dirname(img)+"/",os.path.basename(img).split(".")[-2]+"_cut_"
    for p in range(pages):
        name3 = name1+name2+str(p)+".jpg"
        im2 = image.crop((0,p*h,w,(p+1)*h))
        im2.save(name3)
    print(f"一共完成了{pages}个文件.")    
    

img="D:/ProgramFile/ShareX-15.0.0-portable/ShareX/Screenshots/2023-12/9G83DmOvSa.jpg"        
pages=25
cut(img,pages)

  使用的时候,把img修改为你要切割的图片,pages改为切多少个图片

posted @ 2023-12-07 09:05  saromman  阅读(358)  评论(0)    收藏  举报