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