功能说明

def image_combines(img_dir,fw=1,fh=1,cols=1,flag_sort=True,IMAGES_FORMAT = ['.jpg', '.JPG', 'PNG', '.png', '.jpeg']):
'''
img_dir 表示需要遍历文件夹
fw,fh 分别表示图像宽、高统一放缩的比例,1表示1倍
cols 表示拼接后的图片的每行多少张小图片(多少列),cols=0时,自动按照平方根拼接
flag_sort=True  路径按字符串顺序排列,防止每次图片位置不一样
'''

代码

def image_combines(img_dir,fw=1,fh=1,cols=0,flag_sort=True,IMAGES_FORMAT = ['.jpg', '.JPG', 'PNG', '.png', '.jpeg']):IMAGES_PATH=img_dirimg_paths=[]for cur_dir,folders,files in os.walk(IMAGES_PATH):for name in files:if name.endswith(tuple(IMAGES_FORMAT)):path=os.path.join(cur_dir,name)img_paths.append(path)# image_names = [name for name in (os.listdir(IMAGES_PATH)) for item in IMAGES_FORMAT if#                os.path.splitext(name)[1] == item]if flag_sort:img_paths.sort()print('img_paths',img_paths)n_imgs=len(img_paths)# 向上取整 方图squrt=math.ceil(math.sqrt(n_imgs))print("n_imgs",n_imgs)print("squrt",squrt)# 如果不指定图片的列数,就需要if cols!=0:IMAGE_COLUMN=colselse:IMAGE_COLUMN =squrt # 图片间隔,也就是合并成一张图后,一共有几列IMAGE_ROW = n_imgs//IMAGE_COLUMN # 图片间隔,也就是合并成一张图后,一共有几行if n_imgs%IMAGE_COLUMN!=0:IMAGE_ROW+=1print("IMAGE_ROW,IMAGE_c",IMAGE_ROW,IMAGE_COLUMN)# https://blog.csdn.net/weixin_44548693/article/details/104125989src_w,src_h=Image.open(img_paths[0]).sizeIMAGE_X_SIZE=int(src_w*fw)IMAGE_Y_SIZE=int(src_h*fh)print("IMAGE_X_SIZE,IMAGE_c",IMAGE_X_SIZE,IMAGE_X_SIZE)to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_X_SIZE, IMAGE_ROW * IMAGE_Y_SIZE))  # 创建一个新图# 循环遍历,把每张图片按顺序粘贴到对应位置上i=0for y in range(1, IMAGE_ROW + 1):for x in range(1, IMAGE_COLUMN + 1):if i>=n_imgs:breakimg_path=img_paths[i]from_image = Image.open(img_path).resize((IMAGE_X_SIZE, IMAGE_Y_SIZE), Image.ANTIALIAS)# from_image = Image.open(os.path.join(IMAGES_PATH , image_names[IMAGE_COLUMN * (y - 1) + x - 1])).resize((IMAGE_X_SIZE, IMAGE_Y_SIZE), Image.ANTIALIAS)to_image.paste(from_image, ((x - 1) * IMAGE_X_SIZE, (y - 1) * IMAGE_Y_SIZE))i+=1return to_imageif __name__ == '__main__':test=r'your_imge_dir'to_image=image_combines(test,fw=0.5,fh=0.5,cols=5)to_image.save('./test.png')# 没有指定列cols,将自动计算列参数to_image=image_combines(test,fw=0.5,fh=0.5)to_image.save('./test_squra.png')

自动计算列宽拼接结果

【python拼图】遍历文件夹后,自动拼接图像成正方形图,或者指定行数显示相关推荐

  1. Python高效率遍历文件夹寻找重复文件

    前言 为什么要写这篇文章呢...主要还是业务中有个需求,遍历一个将近200w数据的文件夹,大部分还都是视频文件那种,但是这玩意用的次数还不多,做文件夹index也不是很ok,所以写了一个脚本来处理这个 ...

  2. python 如何遍历文件夹下所有图片/文件? os.walk() os.listdir()

    引用文章1: 初学Python-找出文件夹下的所有图片 . 参考文章2:python中如何遍历文件夹及其子文件夹中的所有文件(附实现代码)

  3. python遍历目录压缩文件夹然后在发送邮件_python目录操作之python遍历文件夹后将结果存储为xml...

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  4. python如何遍历文件夹中的所有图片_python实现遍历文件夹图片并重命名

    在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用python进行统一规范重命名操作 实现方法是利用python的os模块对文件夹进行遍历(listdir),然后使用 ...

  5. Python实例--遍历文件夹下所有的文件或文件夹

    一.前言 最近在跑深度学习的网络模型,跑通代码的前提是要读取数据集,众所周知,深度学习的数据集是非常庞大的,动辄就几个G,想要一个一个的输入无疑是天方夜谭,因此,利用Python遍历数据集就显得非常重 ...

  6. Python递归遍历文件夹下所有文件

    文章目录 文件结构示例 关键API 完整代码 文件结构示例 关键API python版本3.6.8 获取某文件夹下的所有文件及文件夹,返回列表数据 file_list = os.listdir(dir ...

  7. 删除U盘文件夹后自动生成不同位数字的新文件夹

    夹删除U盘文件后自动生成不同位数字的新文件夹解决方法 右键点击目录所在磁盘(C,D,E这种)的属性-选择工具-选择检查,系统自动修复文件系统错误. 如果U盘错误比较严重,修复的时间可能会比较久 然后在 ...

  8. Python实例 遍历文件夹和文件

    import  os import  os.path #  os,os.path里包含大多数文件访问的函数,所以要先引入它们. #  请按照你的实际情况修改这个路径 rootdir  =   &quo ...

  9. os.path python使用遍历文件夹文件

    import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹for parent,dirnames,filenames in o ...

最新文章

  1. 第一代电子计算机诞生的国家是( ),计算机基础知识习题.doc
  2. java override overwrite,重写(overwrite)、重载(overload)和覆盖(override)
  3. 常见的水平居中布局方式
  4. Java并发编程实战~ThreadLocal
  5. 分析一周后终于明白,为什么说不注重数据的企业会被时代淘汰?
  6. 西密歇根大学计算机科学,西密歇根大学
  7. 多柱汉诺塔最优算法设计探究
  8. 用C51编写单片机延时函数
  9. PHP学习笔记03:简单网上调查站点
  10. PC电脑端社交应用设计灵感
  11. 输错密码?这个 sudo 会“嘲讽”你
  12. 关于C#的sqlite数据库操作类
  13. nginx php上传配置
  14. MacOS Monterey 12.5.1 (21G83) OC 0.8.4 / Cl 5148 / PE 三分区原版黑苹果镜像
  15. svn执行reflash/cleanup报错wc.db解决办法
  16. python缩进块是什么,Python块缩进
  17. 【转】拇指拇外翻的纠正训练
  18. 若依前后端分离版生成代码实现仓库的增删改查
  19. Resharp最新破解方法
  20. python自动换行符,python单击帮助格式化换行符

热门文章

  1. “译见”跨语言大数据渠道生态 上亿市场即将开启
  2. 【胖虎的逆向之路】03——Android一代壳脱壳办法罗列实操
  3. Witt向量简介 §3.3:原像集为Witt向量环的环态射
  4. java中string类型如何接收_java中的string类型全面解析
  5. 如何开展一次成功的海外KOL营销活动?
  6. Python爬虫之XPath基础教程:用代码抓取网页数据
  7. ORACLE表格操作图文教学二(分组去重、计数、加减、多表)
  8. 四:es聚和函数Aggregations
  9. 点心、MIUI、乐众OS架构师讲Android底层故事
  10. day37 XSS跨站权限维持钓鱼捆绑浏览器漏洞