重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用python如何实现一个切割图片功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
专注于为中小企业提供成都网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业靖西免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。这个小程序可以自己设定行数和列数进行图片切割
import os from PIL import Image def splitimage(src, rownum, colnum, dstpath): 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) 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 print('图片切割完毕,共生成 %s 张小图片。' % num) else: print('不合法的行列切割参数!') 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('图片输出目录 %s 不存在!' % dstpath) else: print('图片文件 %s 不存在!' % src)