各位小伙伴们,你是不是也厌倦了那些单调乏味的图片格式?又或者饱受不同格式的图片文件所困扰?别急,今天小编来给你送上一份活泼有趣的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教程,都欢迎随时提问哦!加油!✨