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)
然后执行。
恩,确实很简单。Python 的库实在很强大,也很好用。我居然有些不想用 Delphi 写小工具了:)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步