图片切割指的就是一个图片分为多个小图片,在一般情况下直接使用电脑上的画图程序或者是其他的图片处理程序可以完成这个操作 。那么在python中就需要使用到pil这个库了,下面会以详细的代码示例来讲解一下它是如何去实现这个操作的 。
文章插图
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)
推荐阅读
- Python向mysql插入数据库怎么做?Python如何给mysql表添加数据
- Python如何检测代理ip是否有效?Python如何获得代理ip
- Python怎么实现分组聚合?Python对数据分组如何实现
- Python如何生成mysql数据库结构文档?Python怎么获取mysql数据库结构
- 倡导高效、安全、清洁生产方式,实现茶叶加工标准化
- 淘宝主推款怎么定价?如何选?
- 淘宝超级推荐人群溢价多少合适?如何设置?
- 抖音搞笑视频变现难吗?如何变现?
- 抖音小店知识学堂怎么返回抖音?如何运营?
- 抖音怎么接西瓜视频任务?抖音如何同步到西瓜视频?