• 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 列表文件名都加了 . 方便遍历

    1. from PIL import Image
    2. def main(img_path,img_fm):
    3. image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps'] # 常见的图片后缀名
    4. for i in image_format:
    5. if i in img_path:
    6. ret_path = img_path.split(i)[0] # 文件名
    7. ret_path = ret_path + '.' + img_fm # 返回的图片名
    8. img = Image.open(img_path).convert('RGB')
    9. img.save(ret_path)
    10. if __name__ == '__main__':
    11. root = 'test.png' # 传入图片的路径
    12. img_format = 'jpeg' # 待更改的后缀格式 jpg png jpeg ...
    13. main(img_path=root,img_fm=img_format)

    效果如下:

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

    测试的目录如下:

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

    代码:

    1. from PIL import Image
    2. import os
    3. def main(img_path,img_fm):
    4. image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps'] # 常见的图片后缀名
    5. # 返回的新目录
    6. ret_folder_path = img_path + '_ret'
    7. if not os.path.exists(ret_folder_path):
    8. os.makedirs(ret_folder_path)
    9. image_list = [i for i in os.listdir(img_path)] # 所有的图片文件
    10. for im in image_list:
    11. for i in image_format:
    12. if i in im:
    13. ret_path = im.split(i)[0] # 文件名
    14. ret_path = ret_path + '.' + img_fm # 返回的图片名
    15. img = Image.open(os.path.join(img_path,im)).convert('RGB')
    16. img.save(os.path.join(ret_folder_path,ret_path))
    17. if __name__ == '__main__':
    18. root = 'demo' # 传入图片文件夹目录
    19. img_format = 'jpg' # 待更改的后缀格式 jpg png jpeg ...
    20. main(img_path=root,img_fm=img_format)

    效果如下:

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

    测试目录:

    代码:

    1. from PIL import Image
    2. import os
    3. def main(img_path,img_fm):
    4. image_format = ['.jpg','.jpeg','.png','.gif','.bmp','.tiff','.ai','.cdr','.eps'] # 常见的图片后缀名
    5. # 返回的新目录
    6. ret_folder_path = img_path + '_ret'
    7. if not os.path.exists(ret_folder_path):
    8. os.makedirs(ret_folder_path)
    9. sub_folder = [i for i in os.listdir(img_path)]
    10. for sf in sub_folder:
    11. os.makedirs(os.path.join(ret_folder_path,sf))
    12. for i in os.listdir(os.path.join(img_path,sf)): # 图片名
    13. for j in image_format:
    14. if j in i:
    15. ret_path = i.split(j)[0] # 文件名
    16. ret_path = ret_path + '.' + img_fm # 返回的图片名
    17. img = Image.open(os.path.join(img_path,sf,i)).convert('RGB')
    18. img.save(os.path.join(ret_folder_path,sf,ret_path))
    19. if __name__ == '__main__':
    20. root = 'demo' # 传入图片文件夹目录
    21. img_format = 'jpg' # 待更改的后缀格式 jpg png jpeg ...
    22. main(img_path=root,img_fm=img_format)

    效果演示:

  • 相关阅读:
    CSS 3D变换 transform3D
    多关键字dp,P1687 机器人小Q
    [100天算法】-最长有效括号(day 38)
    2.8 高收藏率小红书笔记怎么写?试一试这7类方法吧【玩赚小红书】
    1688搜索店铺列表 API
    点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化
    美国能源部国家实验室将量子计算用于关键能源研究
    Oracle-函数
    嵌入式测试modbus工具modpoll
    全套完整版实战型Java云HIS系统源码
  • 原文地址:https://blog.csdn.net/qq_44886601/article/details/136676941