Python如何实现图片切割?Python中怎么将一个图片分为多个小图片

图片切割指的就是一个图片分为多个小图片,在一般情况下直接使用电脑上的画图程序或者是其他的图片处理程序可以完成这个操作 。那么在python中就需要使用到pil这个库了,下面会以详细的代码示例来讲解一下它是如何去实现这个操作的 。

Python如何实现图片切割?Python中怎么将一个图片分为多个小图片

文章插图
1.首先需要导入模块并且定义一个有三个参数的函数,而这三个参数就是图片文件路径、切割成几行几列以及保存路径,代码如下所示:
import osfrom PIL import Imagedef splitimage(src, rownum, colnum, dstpath):2.要将图片通过open()方法读取到python中之后才能对其进行操作,然后调用size属性获取图片的长宽,也就是分辨率大小 。获取到了之后就判断一下这两个数值是否比传进来值要小,小的话就执行图片切割的方法,代码示例如下所示:
def splitimage(src, rownum, colnum, dstpath):    img = Image.open(src)    w, h = img.size    if rownum <= h and colnum <= w:        s = os.path.split(src)        if dstpath == '':            dstpath = s[0]        fn = s[1].split('.')        basename = fn[0]        ext = fn[-1]        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, basename + '_' + str(num) + '.' + ext), ext)                num = num + 1    else:        print('不数!')3.以上的代码就是将图片给切割完毕了,切割完成之后直接将它们保存在了指定的文件路径中 。然后还需要写一个if条件判断结构,这个if的作用就是去判断一下输入的文件路径以及切割行列数是否有效 。
只有当这些参数都有效的时候才会去调用切割图片的方法,否则参数传递进去也只会得到错误的结果,详细的代码示例如下所示:
【Python如何实现图片切割?Python中怎么将一个图片分为多个小图片】src = input('图片文件:')if os.path.isfile(src):    dstpath = input('图片输出目录')    if (dstpath == '') or os.path.exists(dstpath):        row = int(input('行数:'))        col = int(input('列数:'))        if row > 0 and col > 0:            splitimage(src, row, col, dstpath)        else:            print('无效')    else:        print('输出不存在!' % dstpath)else:    print('图片不存在!' % src)

推荐阅读