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发送SMTP邮件的教程
Apr 29 Python
详解Python中heapq模块的用法
Jun 28 Python
详解python之简单主机批量管理工具
Jan 27 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
浅析PHP与Python进行数据交互
May 15 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
浅谈Python接口对json串的处理方法
Dec 19 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
python中turtle库的简单使用教程
Nov 11 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 MPDF中文乱码的解决方式
2015/12/08 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JS重要知识点小结
2011/11/06 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
如何搜索查找并解决Django相关的问题
2014/06/30 Python
python中的函数用法入门教程
2014/09/02 Python
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python 实现生成均匀分布的点
2019/12/05 Python
python logging添加filter教程
2019/12/24 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
县委务虚会发言材料
2014/10/20 职场文书
个人整改措施书面材料
2014/10/24 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
关于教师节的广播稿
2015/08/19 职场文书