python切割图片的示例


Posted in Python onNovember 12, 2020

这个小程序可以自己设定行数和列数进行图片切割

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切割图片的示例

python切割图片的示例

以上就是利用python切割图片的示例的详细内容,更多关于python 切割图片的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
深入理解python中的浅拷贝和深拷贝
May 30 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python Cookie 读取和保存方法
Dec 28 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
Django给admin添加Action的步骤详解
May 01 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
numpy 声明空数组详解
Dec 05 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
Nov 12 #Python
Django执行源生mysql语句实现过程解析
Nov 12 #Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 #Python
在Python中字典按值排序的实现方法
Nov 12 #Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 #Python
通过代码简单了解django model序列化作用
Nov 12 #Python
Django contrib auth authenticate函数源码解析
Nov 12 #Python
You might like
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
[原创]图片分页查看
2006/08/28 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
jQuery中prev()方法用法实例
2015/01/08 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
Python正则表达式匹配中文用法示例
2017/01/17 Python
python在每个字符后添加空格的实例
2018/05/07 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python笔记之facade模式
2019/11/20 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
预备党员承诺书
2014/03/25 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
食品安全主题班会
2015/08/13 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python