当前位置: 首页 > article >正文

批量转换图片格式(python学习)(11.3)

批量转换图片格式

# -*- coding:utf-8 -*-
# @FileName  :ConvertPictureFormat.py
# @Time      :2024/11/3 16:01
# @Author    :liyiwei


from PIL import Image  # 导入Pillow库中的Image类,Pillow是一个开源的图像处理库。
import os  # 导入os模块,它提供了与操作系统交互的功能。


# 定义一个函数,用于转换目录中的图片格式
def convert_images(directory_path, output_format):
    # 遍历目录中的所有文件
    for filename in os.listdir(directory_path):
        # 检查文件名是否以.jpg、.jpeg或.png结尾
        if filename.endswith(('.jpg', '.jpeg', '.png')):
            # 构建图片的完整路径
            image_path = os.path.join(directory_path, filename)
            # 使用PIL的Image类打开图片
            img = Image.open(image_path)
            # 构建新的文件名,保留原文件名的前缀,并在末尾添加目标格式
            new_filename = os.path.splitext(filename)[0] + f".{output_format}"
            # 将图片保存到原目录,并更改扩展名为新的目标格式
            img.save(os.path.join(directory_path, new_filename))


# 定义主函数,用于运行程序
def main():
    # 定义要转换的目录路径和目标格式
    directory_path = 'D:\\virtualC\\图片素材\\测试图片'  # 需要替换为实际的图片目录路径
    output_format = 'webp'  # 目标格式,例如 'webp', 'png', 'jpg' 等

    # 检查目录是否存在
    if not os.path.isdir(directory_path):
        print(f"目录 {directory_path} 不存在。")
        return

    # 转换图片
    convert_images(directory_path, output_format)
    # 打印转换成功的消息
    print(f"已成功转换 {directory_path} 目录中的图片为 {output_format} 格式。")


# 判断是否为主程序运行
if __name__ == "__main__":
    main()
  1. Pillow库:Pillow是PIL(Python Imaging Library)的一个现代版本,它是一个易于使用的图像处理库,支持图像的打开、编辑、保存等多种操作。
  2. os模块:os模块提供了许多与操作系统交互的函数。在这里,它用于列出目录中的文件和文件夹,以及拼接文件路径。
  3. 文件扩展名:文件扩展名用于指示文件的类型。在这个脚本中,它用于确定哪些文件是需要转换的图片文件。
  4. 文件保存:使用img.save()方法将图片保存到指定路径。这个方法需要一个包含文件路径的字符串作为参数。
  5. 异常处理:虽然代码中没有显示的异常处理,但在实际应用中,对于文件操作可能会出现的异常(如文件不存在、没有写入权限等),应该添加相应的异常处理机制,以确保程序的健壮性。


http://www.kler.cn/a/379762.html

相关文章:

  • 伦敦金价格是交易所公布的吗?
  • 02多线程基础知识
  • 「Mac畅玩鸿蒙与硬件27」UI互动应用篇4 - 猫与灯的互动应用
  • Java 中 HashMap集合使用
  • PHP常量
  • 光耦合器的关键作用和创新---腾恩科技
  • 宝藏虚拟化学习资料大全
  • 胡壮麟《语言学教程》第五版PDF英文版+中文版翻译
  • IDEA加载通义灵码插件及使用指南
  • Python小白学习教程从入门到入坑------第二十三课 封装(语法进阶)
  • 【STM32】STM32G431RBT6单片机的BOOT引脚位置及功能
  • 华为HarmonyOS打造开放、合规的广告生态 - 贴片广告
  • 关于wordpress instagram feed 插件 (现更名为Smash Balloon Social Photo Feed)
  • 使用OCC,输入一个三维的曲面body,和一个平面plane,如果平面plane与body有相交,输出相交结果左右两部分
  • 多线程和线程同步基础篇学习笔记(Linux)
  • 数据结构---链表实现双端队列
  • 小程序跳转另一个小程序
  • WiFi一直获取不到IP地址是怎么回事?
  • Spark中的宽窄依赖
  • 【6G 需求与定义】ITU(国际电联)对全球6G标准的愿景
  • 【工具变量】大数据管理机构改革DID(2007-2023年)
  • el-table 滚动条重置 手动控制滚动条
  • 鸿蒙OS带来前端的机遇:ArkTS与Typescript+ArkUI与SwiftUI的简单对比你就知道了
  • 【编程语言】Kotlin快速入门 - 泛型
  • 深入解密 K 均值聚类:从理论基础到 Python 实践
  • 72页PPT高效协同:SOP运营变革规划核心框架