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

图像批量重命名:

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

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

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

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

python 复制代码
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+=1

yaocai=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for y in yaocai:
    folder_path = "../yaocai_test/" + y
    prefix = y
    # 调用函数进行批量重命名操作
    batch_rename_images(folder_path, prefix)

图像批量旋转:

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

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

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

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

python 复制代码
from PIL import Image
import os

yaocai_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))
相关推荐
mftang几秒前
Python 字符串拼接成字节详解
开发语言·python
0思必得06 分钟前
[Web自动化] Selenium设置相关执行文件路径
前端·爬虫·python·selenium·自动化
石去皿12 分钟前
大模型面试通关指南:28道高频考题深度解析与实战要点
人工智能·python·面试·职场和发展
jasligea22 分钟前
构建个人智能助手
开发语言·python·自然语言处理
测试秃头怪39 分钟前
面试大厂就靠这份软件测试八股文了【含答案】
自动化测试·软件测试·python·功能测试·面试·职场和发展·单元测试
测试杂货铺39 分钟前
软件测试面试题大全,你要的都在这。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·测试用例
测试大圣41 分钟前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例
sww_10261 小时前
RAG检索增强 ETL最佳实战
人工智能·python·spring
福大大架构师每日一题2 小时前
ComfyUI v0.11.1正式发布:新增开发者专属节点支持、API节点强化、Python 3.14兼容性更新等全方位优化!
开发语言·python
淮北4944 小时前
pip虚拟环境包的问题
开发语言·python·pip