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

news/2024/7/27 7:58:05/文章来源:https://blog.csdn.net/qq_44886601/article/details/136676941

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 Imagedef 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 osdef 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 osdef 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)

效果演示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1006833.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thymeleaf 基本使用

介绍 Thymeleaf是一款现代服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML、XML、JavaScript、CSS甚至纯文本。它的主要目标是将优雅的自然模板带到开发工作流程中,实现高度可维护的模板创建方式。 官网文档:https://www…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Gauge)

数据量规图表组件,用于将数据展示为环形图表。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 说明: 建议使用文本组件构建当前数值文本和辅…

面向对象(精髓)变继承关系为组和关系(_Decorator模式)

在软件开发中,设计模式是解决常见问题的可重用解决方案。在面向对象编程中,继承和组合是两种常用的代码复用方式。然而,随着软件需求的不断变化,我们需要更灵活的设计方式来应对不断变化的需求。在本文中,我们将讨论从…

Unity DropDown 组件 详解

Unity版本 2022.3.13f1 Dropdown下拉菜单可以快速创建大量选项 一、 Dropwon属性详解 属性:功能:Interactable此组件是否接受输入?请参阅 Interactable。Transition确定控件以何种方式对用户操作进行可视化响应的属性。请参阅过渡选项。Nav…

linux系统对于docker容器的监控

容器监控 容器监控原生命令操作问题 容器监控三剑客CAdvisorInfluxDBGranfana compose编排监控工具新建目录创建CIG.yml文件启动docker-compose测试 容器监控 CAdvisorInfluxDBGranfana 原生命令 操作 docker stats问题 通过docker stats命令可以很方便的看到当前宿主机上所…

Stable Diffusion 模型:从噪声中生成逼真图像

你好,我是郭震 简介 Stable Diffusion 模型是一种生成式模型,可以从噪声中生成逼真的图像。它由 Google AI 研究人员于 2022 年提出,并迅速成为图像生成领域的热门模型。 数学基础 Stable Diffusion模型基于一种称为扩散概率模型(Diffusion P…

Linux:锁和线程同步的相关概念以及生产者消费者模型

文章目录 加锁的基本原则死锁死锁的概念死锁的条件 线程同步生产者消费者模型模型的理解 理解cp问题条件变量 本篇总结的是关于Linux中锁的相关概念以及生产者消费者模型 加锁的基本原则 加锁的基本原则:谁加锁谁解锁,不要把加锁和解锁这样的操作放在两…

从零开始搭建医保购药APP:技术选择与开发流程

医保购药APP作为一种创新的医疗服务工具,为用户提供了便捷的医保购药流程,同时也为医疗机构提供了更高效的管理和服务方式。今天小编将为大家讲解如何从零开始搭建一款医保购药APP,包括技术选择和开发流程。 一、技术选择 在搭建医保购药APP…

【海贼王的数据航海】栈和队列

目录 1 -> 栈 1.1 -> 栈的概念及结构 1.2 -> 栈的实现 1.2.1 -> Stack.h 1.2.2 -> Stack.c 1.2.3 -> Test.c 2 -> 队列 2.1 -> 队列的概念及结构 2.2 -> 队列的实现 2.2.1 -> Queue.h 2.2.2 -> Queue.c 1 -> 栈 1.1 -> 栈的…

c++指针的定义和使用

1、定义一个指针 int a10; //定义指针的语法&#xff1a;数据类型 * 指针变量名&#xff1a;int * p&#xff1b; //让指针记录变量a的地址&#xff1a;p &a; int a 10;int* p; p &a; cout << "a的地址为&#xff1a;" << &a <<…

Flink 性能优化总结(反压优化篇)

反压的理解 Flink 中每个节点间的数据都以阻塞队列的方式传输&#xff0c;下游来不及消费导致队列被占满后&#xff0c;上游的生产也会被阻塞&#xff0c;最终导致数据源的摄入被阻塞。简单来说就是系统接收数据的速率远高于它处理数据的速率。 反压如果不能得到正确的处理&am…

mineadmin 快速安装部署(docker环境)

前提条件&#xff1a;已安装docker 一、下载dnmp环境包 github地址&#xff1a;https://github.com/tomorrow-sky/dnmp gitee地址&#xff1a; https://gitee.com/chenjianchuan/dnmp 二、看一下dnmp包目录结构 三、打开docker-compose.yml 文件&#xff0c;将不需要…

机器学习(25)文献阅读

这里写目录标题 摘要Abstract:一、论文论文思想网络架构基本块结构特征融合模块Loss Function结论 二 、GAN2.1 如何客观评价GAN的生成能力&#xff1f;2.2 Inception Score2.3 Mode Score2.4 Kernel MMD (Maximum Mean Discrepancy)2.5 Wasserstein distance2.6 1-Nearest Nei…

C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…

算法-双指针、BFS与图论-1101. 献给阿尔吉侬的花束

题目 思路 BFS可以搜环&#xff0c;有环也没有关系&#xff0c;如果有解&#xff1a;一定可以找到一条最小步数的合法的路径Python中 collections模块的详细用法介绍_python collections-CSDN博客引用自上述文章&#xff1a; append(x)&#xff1a;添加 x 到右端。appendleft(…

【机器学习】科学库使用第1篇:机器学习(常用科学计算库的使用)基础定位、目标【附代码文档】

机器学习&#xff08;科学计算库&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习&#xff08;常用科学计算库的使用&#xff09;基础定位、目标&#xff0c;机器学习概述&#xff0c;1.1 人工智能概述&#xff0c;1.2 人工智能发展历…

豆瓣书影音存入Notion

使用Python将图书和影视数据存放入Notion中。 &#x1f5bc;️介绍 环境 Python 3.10 &#xff08;建议 3.11 及以上&#xff09;Pycharm / Vs Code / Vs Code Studio 项目结构 │ .env │ main.py - 主函数、执行程序 │ new_book.txt - 上一次更新书籍 │ new_video.…

贝叶斯优化CNN-BiLSTM回归预测(matlab代码)

贝叶斯优化CNN-BiLSTM回归预测matlab代码 贝叶斯优化方法则采用贝叶斯思想&#xff0c;通过不断探索各种参数组合的结果&#xff0c;根据已有信息计算期望值&#xff0c;并选择期望值最大的组合作为最佳策略&#xff0c;从而在尽可能少的实验次数下达到最优解。 数据为Excel股…

双系统合集——Ubuntu+Windows 10安装融合!

平时我们常见的电脑系统都是单一 一个Windows,当然,对于日常办公或娱乐足够了,但是对于发烧友来说,这种呆板了。万一某天系统崩溃了,只能泪两行。这时双系统就体现出他的优点了,一个系统崩溃了,还可以进入另一个系统使用,而且两个系统都是完全独立的,互不影响,开机时…

LeetCode.2864. 最大二进制奇数

题目 2864. 最大二进制奇数 分析 这道题目其实我们只需要保证最后一位是1&#xff0c;其余的1都放在最前面&#xff0c;这样得到的就是最大二进制奇数。 所以&#xff0c;我们先统计给定的字符串有多少个 1&#xff0c;多少个 0&#xff0c;把其中一个 1 放在最后一位&…