当前位置: 首页 > news >正文

Python批量图像处理--图片重命名、图片旋转

图像批量重命名:

使用batch_rename_images函数实现对多个文件夹下面的图片进行重命名操作

先检查文件名的后缀,使用了.endswith()方法来判断文件名是否以.jpg.png.JPG结尾,判断是否为图片文件

然后构造新的文件路径new_filepathos.path.join函数将文件名和文件夹路径拼接起来。

最后使用os.rename函数将旧的文件路径重命名为新的文件路径

import os
def batch_rename_images(folder_path, prefix):# 获取指定文件夹下的所有文件files = os.listdir(folder_path)cnt=1# 遍历文件列表for filename in files:# 构造旧的文件路径old_filepath = os.path.join(folder_path, filename)print(old_filepath)# 检查是否为图片文件if filename.endswith(".jpg") or filename.endswith(".png")  or filename.endswith(".JPG"):# 构造新的文件名new_filename = prefix + "-"+str(cnt)+".jpg"# 构造新的文件路径new_filepath = os.path.join(folder_path, new_filename)# 重命名文件os.rename(old_filepath, new_filepath)cnt+=1yaocai=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for y in yaocai:folder_path = "../yaocai_test/" + yprefix = y# 调用函数进行批量重命名操作batch_rename_images(folder_path, prefix)

图像批量旋转:

主要使用python的PIL库实现,在图像对象上调用rotate()方法,它接受两个参数:angleexpand

angle参数指定旋转的角度,以度为单位。正值表示顺时针旋转,负值表示逆时针旋转。

expand参数是可选的,当expandTrue时,旋转后的图像会被调整大小,以适应整个旋转后的图像而不裁剪任何部分。如果expandFalse或未指定,则旋转后的图像将被裁剪为原始图像的大小。

下面实现读取多个文件夹,并对每个文件夹的图片旋转并保存在原文件夹中

from PIL import Image
import osyaocai_list=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for yaocai in yaocai_list:folder_path = "../yaocai_test/" + yaocai #文件路径output_folder_path = "../yaocai_test/" + yaocai # 保存文件的路径for filename in os.listdir(folder_path):file_path = os.path.join(folder_path, filename)# 图片统一为JPG格式,所以只需要看是不是jbg就行了if filename.endswith(".jpg"):im = Image.open(file_path)# 将图像对象转换为RGB模式im = im.convert("RGB")angle=90# 对图像对象进行90度的旋转im = im.rotate(angle, expand=True)new_filename = f"{angle}_"+filename  # 新的文件名im.save(os.path.join(output_folder_path, new_filename))
http://www.lryc.cn/news/251530.html

相关文章:

  • 第五天 用Python批量处理Excel文件,实现自动化办公
  • mybatis整合(手动添加jar包方式)
  • leetcode - 矩阵区域和
  • 头歌JUnit单元测试相关实验进阶
  • 【kafka实践】11|消费位移提交
  • Mac卸载、安装Python
  • 算法——滑动窗口
  • 带头双向循环链表:一种高效的数据结构
  • C++基础 -34- 输入输出运算符重载
  • MimicGen论文分析与资料汇总
  • JAVA-每一页PDF转图片
  • VS安装QT VS Tools编译无法通过
  • 【C语言之 CJson】学CJson看这一篇就够了
  • 使用Java语言实现字母之间的大小写转换
  • Docker的数据持久化;Docker网络;Dockerfile编写
  • OpenHarmony亮相MTSC 2023 | 质量效率共进,赋能应用生态发展
  • windows11 调整鼠标灵敏度方法
  • 贪心算法个人见解
  • Win中Redis部署与配置
  • vue el-button 封装及使用
  • QT之QMediaPlayer的用法
  • TCP_报文格式解读
  • C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词下篇)
  • Java学习第十三天
  • 【Delphi】实现彩色日志显示框(TRichEdit Helper)
  • Elasticsearch 优化查询中获取字段内容的方式,性能提升5倍!
  • 图像批量设计软件Retrobatch Pro mac中文版功能特色
  • python第3天之函数
  • SQL Server 数据库,为products表添加数据
  • C语言结构体详解(二)(能看懂文字就能明白系列)文章很长,慢慢品尝