返回

Python把图片转换为webp

我们可以使用python转换图片文件到webp格式以提升网站访问速度

目录

# Python把图片批量转换为webp

需要Python 3.8.10,我不想使用在线转换awa

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
import sys
from PIL import Image

def convert_to_webp(input_file, output_file, quality=80):
    try:
        with Image.open(input_file) as im:
            im.save(output_file, "webp", quality=quality)
        print(f"Converted: {input_file} => {output_file}")
    except Exception as e:
        print(f"Error converting file: {input_file}")
        print(str(e))

def process_folder(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for filename in files:
            if any(filename.lower().endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
                input_file = os.path.join(root, filename)
                output_file = os.path.splitext(input_file)[0] + ".webp"
                convert_to_webp(input_file, output_file)

if __name__ == "__main__":
    folder_path = os.path.dirname(sys.argv[0])
    process_folder(folder_path)

# 注释版本

这段代码的功能是批量将文件夹内的JPG、JPEG和PNG图片转换为WEBP格式。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os     # 处理文件和目录
import sys # 获取命令行参数
from PIL import Image # 处理图片

def convert_to_webp(input_file, output_file, quality=80):
 # 函数用于转换一个图片文件
 # input_file: 输入的图片文件路径  
 # output_file: 输出的webp文件路径
 # quality: webp文件质量,取值范围1-100,默认值80
 try:
 # 打开输入图片文件
 with Image.open(input_file) as im:
 # 保存为webp格式
 im.save(output_file, "webp", quality=quality) 
print(f"Converted: {input_file} => {output_file}")
 except Exception as e:
 # 捕获异常
 print(f"Error converting file: {input_file}")
 print(str(e))

def process_folder(folder_path):
 # 函数用于处理整个文件夹
 # folder_path: 文件夹路径
 for root, dirs, files in os.walk(folder_path):
 for filename in files:
 # 检查文件后缀是否为jpg/jpeg/png
 if any(filename.lower().endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
 input_file = os.path.join(root, filename)
 output_file = os.path.splitext(input_file)[0] + ".webp"
 # 调用转换函数
 convert_to_webp(input_file, output_file)

if __name__ == "__main__":
 # 获取当前脚本路径
 folder_path = os.path.dirname(sys.argv[0]) 
process_folder(folder_path)

# 需要安装的库

以下是安装Pillow库的步骤:

  1. 确保已经安装Python环境。

  2. 打开命令提示符(Windows)或终端(Mac/Linux)。

  3. 输入以下命令安装Pillow:

    1
    
    pip install Pillow
    
  4. 安装成功后,可以导入Pillow库进行图像处理:

    1
    
    from PIL import Image
    
  5. 如果遇到权限问题,可以使用sudo或加入管理员权限安装:

    1
    
    sudo pip install Pillow
    
    1
    
    pip install Pillow --user
    
  6. 在Windows中,您有时需要使用pip install -U Pillow命令升级pip以安装Pillow。

  7. Pillow还有一些依赖,所以在安装期间可能也需要安装这些依赖。

示例安装命令:

  • linux系统/Mac: pip install Pillow
  • Windows: pip install Pillowpip install Pillow --user

主要步骤就是使用pip安装Pillow库,然后就可以在Python代码中导入 PIL包并使用Pillow了。

# 后记

完美实现了转换webp的要求