要塞攻击免广告版
210.79MB · 2025-10-31
在日常开发和图像处理工作中,我们经常需要将图片从一种格式转换为另一种格式。本文将基于一个实际的Python脚本示例,介绍如何实现批量图片格式转换,并对比几种常用的图像处理库的优劣势。
优势:
劣势:学习曲线较陡峭;对于简单的格式转换任务可能过于复杂;主要专注于计算机视觉任务。
优势:
劣势:相对于PIL,社区支持较小;安装可能比较复杂。
优势:
劣势:在处理大量图像时性能不如OpenCV;功能相对有限,主要专注于基本的图像处理。
PIL库处理图像,os库处理文件和文件夹操作。os.makedirs(output_folder, exist_ok=True)确保输出文件夹存在。os.listdir()获取输入文件夹中的所有文件。filename.lower().endswith('.webp')筛选出WebP格式的文件。Image.open()打开WebP图片,然后通过img.save()保存为PNG格式。from PIL import Image
import os
def convert_webp_to_png(input_folder, output_folder):
    # 创建输出文件夹(如果不存在)
    os.makedirs(output_folder, exist_ok=True)
    
    # 遍历输入文件夹中的所有webp文件
    for filename in os.listdir(input_folder):
        if filename.lower().endswith('.webp'):
            # 构建完整的文件路径
            input_path = os.path.join(input_folder, filename)
            
            # 打开webp图片
            try:
                with Image.open(input_path) as img:
                    # 生成输出文件名(将.webp替换为.png)
                    output_filename = os.path.splitext(filename)[0] + '.png'
                    output_path = os.path.join(output_folder, output_filename)
                    
                    # 转换并保存为png格式
                    img.save(output_path, 'PNG')
                    print(f"已转换: {filename} -> {output_filename}")
            except Exception as e:
                print(f"转换失败 {filename}: {str(e)}")
if __name__ == "__main__":
    input_folder = "webp"
    output_folder = "out_webp"
    convert_webp_to_png(input_folder, output_folder)
    print("所有webp图片已转换完成!")
 
                    