Python实现批量转换图片格式:告别单调乏味的图片圈套!

各位小伙伴们,你是不是也厌倦了那些单调乏味的图片格式?又或者饱受不同格式的图片文件所困扰?别急,今天小编来给你送上一份活泼有趣的Python教程,让我们一起告别单调,迎接多彩多姿的图片世界吧!

准备工作

首先,我们要准备一些好玩的东西。拿上你的Python装备吧!另外,还需要使用到PIL库(Python Imaging Library),这个家伙可是我们图片处理的得力助手哦!

PIL库的安装:

pip install Pillow

代码实现

from PIL import Image
import osdef convert_images_in_folder(input_folder,output_folder,output_format):os.makedirs(output_folder,exist_ok=True)for filename in os.listdir(input_folder):input_path = os.path.join(input_folder,filename)if os.path.isfile(input_path):output_filename = f"{os.path.splitext(filename)[0]}.{output_format}"output_path = os.path.join(output_folder,output_filename)with Image.open(input_path) as img:img.save(output_path)# 测试
convert_images_in_folder('input_images','output_images','png')

代码解析

这段代码虽然短小,但却包含了PIL库的应用、文件处理、以及图片格式转换的精彩操作。Python就像是一个色彩斑斓的调色盘,在你的世界里添上不一样的色彩!

这段代码实现了批量转换图片格式的功能。让我来逐步解释一下:

1.首先是导入了PIL库中的Image模块以及Python的os模块。PIL库是Python Imaging Library,提供了图像处理的基本功能,os模块则用于系统交互操作。

2.定义了名为convert_images_in_folder的函数,该函数接收三个参数:

3.使用os.makedirs(output_folder,exist_ok=True)创建输出文件夹,如果文件夹已存在则不会报错(exist_ok=True)。

4.使用os.listdir(input_folder)遍历输入文件夹中的所有文件,对每个文件进行格式转换。

5.对于每个文件,获取其完整路径input_path,并检查它是否是文件(os.path.isfile(input_path))。

6.如果是文件,则根据原文件名生成转换后的文件名output_filename,并拼接得到输出路径output_path

7.使用PIL库中的Image.open打开原图片,然后使用save方法保存为指定格式的图片。

8.最后,在测试部分调用convert_images_in_folder函数进行测试,将输入文件夹input_images中的图片转换为png格式,并保存到输出文件夹output_images中。

这段代码利用PIL库实现了批量转换图片格式的功能,让图片处理变得如此轻松!希望这个解释能帮助你理解这段有趣的图片处理代码!如果有其他问题,随时提问哦!

  • input_folder:输入图片所在的文件夹路径
  • output_folder:转换后图片要保存的文件夹路径
  • output_format:要转换成的图片格式(如'png'、'jpeg'等)

激动人心的测试

快来跟着小编的指引,将你收集的图片集变出花样吧!只需要将输入文件夹路径、输出文件夹路径和目标格式简单地传入convert_images_in_folder函数,Python就能帮你完成格式转换的魔法!

我的【待转换格式的图片】这个文件夹在桌面:

目前的格式都是jpg的,我想把它们都转成png的格式,并输出到桌面上的【转换后的图片】文件夹里。接着要上我们的代码了,只需要把最后一行的参数改一下:

convert_images_in_folder('C:/Users/olive/Desktop/待转换格式的图片','C:/Users/olive/Desktop/转换后的图片','png')

接着,运行一下我们的代码,速度很快,马上在我们的桌面上的【转换后的图片】文件夹里生成了转换后的图片:

我们注意看两点,第一,转换后的图片,果然是png格式的。第二,转换后的图片大小是不同的,转成png格式后,文件居然大了差不多5倍,所以不是简单地改了一下文件的后缀名,而是真正意义上的图片格式的转换哦!看来PIL库确实是太强大了,前人栽树,我们乘凉,真爽!

结语

期待看到你的图片作品,都是为了更加精彩的画面呀!如果有任何问题,或者想要更多有趣的Python教程,都欢迎随时提问哦!加油!✨

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

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

相关文章

R包:TreeAndLeaf二分类树构建R包

介绍 树形图显示了二叉树,重点是表示树元素之间的层次关系。树状图包含节点、分支(边)、根和叶。根是分支和节点的来源,指示到叶的方向,即终端节点。 树形图布局的大部分空间用于排列分支和内部节点,留给叶子的空间有限。对于大…

异常检测算法

目录 一、异常检测算法功能:二、正态(高斯)分布:三、异常检测算法执行过程:四、如何选择特征:五、评估异常检测算法: 一、异常检测算法功能: 异常检测算法用来检测数据集中的一些异…

OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验

OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验1.运行2.重点3.目录结构4.main.cpp5.CMakeList.txt 1.运行 2.重点 3.目录结构 01_GLFW_…

oracle控制文件详解以及新增控制文件

文章目录 oracle控制文件1、 控制文件包含的主要信息如下:2、查看目前系统的控制文件信息,主要是查看相关的字典视图 oracle新增控制文件 oracle控制文件 控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据…

AI安全系列——[第五空间 2022]AI(持续更新)

最近很长时间没有更新,其实一直在学习AI安全,我原以为学完深度学习之后再学AI安全会更加简单些,但是事实证明理论转实践还是挺困难的,但是请你一定要坚持下去,因为“不是所有的坚持都有结果,但总有一些坚持…

uniapp发送Form Data格式请求

设置header的Content-Type为 application/x-www-form-urlencoded 即可 uni.request({url: , // 接口urldata: {input: 写一篇一千字的作文}, // 入参method: POST, // 参数类型header: {"Content-Type": "application/x-www-form-urlencoded"}, // 请求头…

如何构建全生命周期的安全体系架构来确保容器的安全?

容器技术在云原生应用和微服务架构中得到了广泛应用,其轻量、灵活和高效的特点使其成为现代IT环境中的重要工具。然而,尽管容器带来了许多优势,但其安全性问题也不容忽视。接下来跟随博主一起探索如何构建全生命周期的安全体系架构以确保容器…

js 请求blob:https:// 图片

方式1 def get_file_content_chrome(driver, uri):result driver.execute_async_script("""var uri arguments[0];var callback arguments[1];var toBase64 function(buffer){for(var r,nnew Uint8Array(buffer),tn.length,anew Uint8Array(4*Math.ceil(t/…

【LSTM和GRU极简,和最新的TT也就是状态】机器学习模型来学习状态

LSTM(长短期记忆网络)中的关键参数包括输入门、遗忘门、输出门、细胞状态和隐藏状态。以下是如何进行推理计算的示例: LSTM参数和公式 输入门(i_t):决定输入的信息量。 遗忘门(f_t&#xff0…

处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录 1、问题描述2、详情动图3、解决思路4、解决方案5、效果展示 1、问题描述 在 electron 中使用 el-image 时,开启了懒加载后,发现只有当窗口滚动后,图片才会显示,即便图片已经处于窗口的可视区域。当拖动窗口使其尺寸变大…

解决ESLint和Prettier冲突的问题

在配置了ESLint的项目中使用Prettier进行格式化可能会出现冲突,不如Prettier配置了使用双引号,ESLint配置了单引号,当然可以一个一个改成一样的配置,但是比较麻烦。我发现可以直接使用ESLint的规则进行格式化。在VSCode配置过程如…

FPGA上板项目(二)——PLL测试

目录 实验内容实验原理实验步骤实验结果 实验内容 将差分时钟信号转化为 192MHz 时钟信号作为输出。 实验原理 PLL,即锁相环,一种反馈控制电路,具有时钟倍频、分频、相位偏移和可编程占空比的功能。 实验步骤 添加 clocking wizard IP核&…

Spring Boot 集成 RabbitMQ

依赖与配置 在 pom.xml 中引入 RabbitMQ 相关依赖 <!-- AMQP 依赖, RabbitMq --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>3.2.7</version> &…

ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法

问题描述 Vue2 项目在使用 el-select 组件时&#xff0c;动态将disabled变更为了 true&#xff0c;元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板&#xff0c;发现&#xff0c;组件内的 input 元素被动态设置了height的样式&#xff1a; 在项目中检查后并…

微软Office PLUS办公插件下载安装指南

微软OfficePLUS插件下载安装指南 简介&#xff1a; OfficePLUS微软官方出品的Office插件 &#xff0c;OfficePLUS拥有30万高质量模板素材&#xff0c;能帮助Word、Excel、Powerpoint、PDF等多种办公软件提升效率&#xff0c;具有智能化、模板质量高、运行快、稳定性强等优点。…

prompt第二讲-langchain实现中英翻译助手

文章目录 prompt模板 (prompt template)langchain 中的prompt模板 (prompt template)langchain实现中英翻译助手 prompt模板 (prompt template) 开篇我介绍了在llm中&#xff0c;通常输入的那个字符串会被我们称之为prompt&#xff0c;下面就是一个中英文翻译助手的prompt例子…

探索智能合约在金融科技中的前沿应用与挑战

随着区块链技术的发展和普及&#xff0c;智能合约作为其核心应用之一&#xff0c;在金融科技&#xff08;FinTech&#xff09;领域中展现出了巨大的潜力和挑战。本文将深入探讨智能合约的基本概念、前沿应用案例&#xff0c;以及面临的技术挑战和发展趋势&#xff0c;旨在帮助读…

解决QT creator中文乱码问题

1.首先设置文本编辑器为UTF-8 先在工具-选项-文本编辑器-behavior部分选择文件编码为UTF-8&#xff0c;紧接着是选择“如果编码是UTF-8则添加”&#xff0c;如下图 2.设置ext code for tools 为system 具体解决办法是 工具-选项-环境-interfaces这一栏有一个“Text code for to…

基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

MySQL篇:事务

1.四大特性 首先&#xff0c;事务的四大特性&#xff1a;ACID&#xff08;原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性&#xff09; 在InnoDB引擎中&#xff0c;是怎么来保证这四个特性的呢&#xff1f; 持久性是通过 redo log &#xff08;重做日志&…