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)

效果演示:

相关推荐

  1. 办公自动化Python中的BeautifulSoup

    2024-03-14 07:38:07       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 07:38:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 07:38:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 07:38:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 07:38:07       20 阅读

热门阅读

  1. 基于左逆的三点法测距,MATLAB函数

    2024-03-14 07:38:07       18 阅读
  2. 【MATLAB】界面是两个连续的GUI时如何调出第二个

    2024-03-14 07:38:07       23 阅读
  3. Oracle 10g字符编码

    2024-03-14 07:38:07       22 阅读
  4. MERGE Into 的用法在ORACLE和高斯数据库上的差异

    2024-03-14 07:38:07       17 阅读
  5. GitLab Runner 服务出现问题排查步骤

    2024-03-14 07:38:07       18 阅读
  6. proto的singular解释

    2024-03-14 07:38:07       21 阅读
  7. PHP修改默认上传文件缓存位置

    2024-03-14 07:38:07       22 阅读
  8. 【 React 】React 构建组件的方式有哪些?区别?

    2024-03-14 07:38:07       24 阅读