PYTHON 自动化办公:更改图片后缀

1、前言

在之前的文章中,介绍了图片的压缩技术,这里讲解如何利用python批量将图片改为指定后缀的格式。当然,也可以为深度学习批量更改文件后缀,例如在分割中,可能需要img和mask的图片名称完全一致等等

PYTHON 自动化办公:压缩图片(PIL)_image save quality图像压缩-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_44886601/article/details/136413689

文中使用的库函数是python的PIL库函数(pillow),安装如下

pip install pillow

Tips :

 image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

代码中会有一个常见图片后缀的列表,为了后面的使用,如果使用的图片后缀不在里面,可以自行添加

2、更改单张图片的后缀

代码如下:

因为有的图片名称很长,甚至中途还会将后缀出现,例如 sda1233pngddwsa.png

但无论怎样风骚的文件名,不可能出现带 . + 后缀 的字符串,因为会直接报错。所以这里image_format 列表文件名都加了 . 方便遍历

from PIL import Image


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    for i in image_format:
        if i in img_path:
            ret_path = img_path.split(i)[0]     # 文件名
            ret_path = ret_path + '.' + img_fm  # 返回的图片名

    img = Image.open(img_path).convert('RGB')
    img.save(ret_path)


if __name__ == '__main__':
    root = 'test.png'  # 传入图片的路径
    img_format = 'jpeg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果如下:

3、多张图片更改成指定后缀(单个文件夹)

测试的目录如下:

目的是将demo目录的所有图片更改为 jpg 格式,并且保存在新的目录

代码:

from PIL import Image
import os


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    # 返回的新目录
    ret_folder_path = img_path + '_ret'
    if not os.path.exists(ret_folder_path):
        os.makedirs(ret_folder_path)

    image_list = [i for i in os.listdir(img_path)]  # 所有的图片文件

    for im in image_list:
        for i in image_format:
            if i in im:
                ret_path = im.split(i)[0]     # 文件名
                ret_path = ret_path + '.' + img_fm  # 返回的图片名

        img = Image.open(os.path.join(img_path,im)).convert('RGB')
        img.save(os.path.join(ret_folder_path,ret_path))


if __name__ == '__main__':
    root = 'demo'  # 传入图片文件夹目录
    img_format = 'jpg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果如下:

4、多个文件夹的图片后缀更改

测试目录:

代码:

from PIL import Image
import os


def main(img_path,img_fm):
    image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps']     # 常见的图片后缀名

    # 返回的新目录
    ret_folder_path = img_path + '_ret'
    if not os.path.exists(ret_folder_path):
        os.makedirs(ret_folder_path)

    sub_folder = [i for i in os.listdir(img_path)]

    for sf in sub_folder:
        os.makedirs(os.path.join(ret_folder_path,sf))

        for i in os.listdir(os.path.join(img_path,sf)):     # 图片名
            for j in image_format:
                if j in i:
                    ret_path = i.split(j)[0]     # 文件名
                    ret_path = ret_path + '.' + img_fm  # 返回的图片名

            img = Image.open(os.path.join(img_path,sf,i)).convert('RGB')
            img.save(os.path.join(ret_folder_path,sf,ret_path))


if __name__ == '__main__':
    root = 'demo'  # 传入图片文件夹目录
    img_format = 'jpg'     # 待更改的后缀格式 jpg png jpeg ...

    main(img_path=root,img_fm=img_format)

效果演示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ai 医学图像分割

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值